# Google Cloud Storage Transfer V1 Client - Class ObjectConditions (2.4.0)

2.4.0 (latest) 2.3.2 2.2.1 2.1.1 2.0.2 1.5.0 1.4.5 1.3.1 1.2.0 1.1.1 1.0.6 Reference documentation and code samples for the Google Cloud Storage Transfer V1 Client class ObjectConditions.

Conditions that determine which objects are transferred. Applies only
to Cloud Data Sources such as S3, Azure, and Cloud Storage.

The "last modification time" refers to the time of the
last change to the object's content or metadata --- specifically, this is
the `updated` property of Cloud Storage objects, the `LastModified` field
of S3 objects, and the `Last-Modified` header of Azure blobs.
For S3 objects, the `LastModified` value is the time the object begins
uploading. If the object meets your "last modification time" criteria,
but has not finished uploading, the object is not transferred. See
[Transfer from Amazon S3 to Cloud
Storage](https://cloud.google.com/storage-transfer/docs/create-transfers/agentless/s3#transfer_options)
for more information.
Transfers with a [PosixFilesystem](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.PosixFilesystem)
source or destination don't support `ObjectConditions`.

Generated from protobuf message `google.storagetransfer.v1.ObjectConditions`

## Namespace

Google \\ Cloud \\ StorageTransfer \\ V1

## Methods

### __construct

Constructor.

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `data` | `array` Optional. Data for populating the Message object. |
| `↳ min_time_elapsed_since_last_modification` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` Ensures that objects are not transferred until a specific minimum time has elapsed after the "last modification time". When a [TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation) begins, objects with a "last modification time" are transferred only if the elapsed time between the [start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the `TransferOperation` and the "last modification time" of the object is equal to or greater than the value of min_time_elapsed_since_last_modification\`. Objects that do not have a "last modification time" are also transferred. |
| `↳ max_time_elapsed_since_last_modification` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` Ensures that objects are not transferred if a specific maximum time has elapsed since the "last modification time". When a [TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation) begins, objects with a "last modification time" are transferred only if the elapsed time between the [start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the `TransferOperation`and the "last modification time" of the object is less than the value of max_time_elapsed_since_last_modification\`. Objects that do not have a "last modification time" are also transferred. |
| `↳ include_prefixes` | `string[]` If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If [exclude_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getExcludePrefixes__) is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: \* \* Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. \* \* Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. \* \* None of the include-prefix values can be empty, if specified. \* \* Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers). |
| `↳ exclude_prefixes` | `string[]` If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: \* \* Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. \* \* Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. \* \* None of the exclude-prefix values can be empty, if specified. \* \* Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. \* \* If [include_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getIncludePrefixes__) is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers). |
| `↳ last_modified_since` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp` If specified, only objects with a "last modification time" on or after this timestamp and objects that don't have a "last modification time" are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day's worth of data at a time. For that you'd set each of the fields as follows: \* \* `last_modified_since` to the start of the day \* \* `last_modified_before` to the end of the day |
| `↳ last_modified_before` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp` If specified, only objects with a "last modification time" before this timestamp and objects that don't have a "last modification time" are transferred. |

### getMinTimeElapsedSinceLastModification

Ensures that objects are not transferred until a specific minimum time
has elapsed after the "last modification time". When a
[TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation) begins,
objects with a "last modification time" are transferred only if the elapsed
time between the
[start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the
`TransferOperation` and the "last modification time" of the object is equal
to or greater than the value of min_time_elapsed_since_last_modification\`.

Objects that do not have a "last modification time" are also transferred.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration|null` |   |

### hasMinTimeElapsedSinceLastModification

### clearMinTimeElapsedSinceLastModification

### setMinTimeElapsedSinceLastModification

Ensures that objects are not transferred until a specific minimum time
has elapsed after the "last modification time". When a
[TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation) begins,
objects with a "last modification time" are transferred only if the elapsed
time between the
[start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the
`TransferOperation` and the "last modification time" of the object is equal
to or greater than the value of min_time_elapsed_since_last_modification\`.

Objects that do not have a "last modification time" are also transferred.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getMaxTimeElapsedSinceLastModification

Ensures that objects are not transferred if a specific maximum time
has elapsed since the "last modification time".

When a [TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation)
begins, objects with a "last modification time" are transferred only if the
elapsed time between the
[start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the
`TransferOperation`and the "last modification time" of the object
is less than the value of max_time_elapsed_since_last_modification\`.
Objects that do not have a "last modification time" are also transferred.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration|null` |   |

### hasMaxTimeElapsedSinceLastModification

### clearMaxTimeElapsedSinceLastModification

### setMaxTimeElapsedSinceLastModification

Ensures that objects are not transferred if a specific maximum time
has elapsed since the "last modification time".

When a [TransferOperation](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation)
begins, objects with a "last modification time" are transferred only if the
elapsed time between the
[start_time](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.TransferOperation#_Google_Cloud_StorageTransfer_V1_TransferOperation__getStartTime__) of the
`TransferOperation`and the "last modification time" of the object
is less than the value of max_time_elapsed_since_last_modification\`.
Objects that do not have a "last modification time" are also transferred.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Duration` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getIncludePrefixes

If you specify `include_prefixes`, Storage Transfer Service uses the items
in the `include_prefixes` array to determine which objects to include in a
transfer. Objects must start with one of the matching `include_prefixes`
for inclusion in the transfer. If
[exclude_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getExcludePrefixes__)
is specified, objects must not start with any of the `exclude_prefixes`
specified for inclusion in the transfer.

The following are requirements of `include_prefixes`:

- Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported.
- Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`.
- None of the include-prefix values can be empty, if specified.
- Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from
  transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/RepeatedField<string>` |   |

### setIncludePrefixes

If you specify `include_prefixes`, Storage Transfer Service uses the items
in the `include_prefixes` array to determine which objects to include in a
transfer. Objects must start with one of the matching `include_prefixes`
for inclusion in the transfer. If
[exclude_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getExcludePrefixes__)
is specified, objects must not start with any of the `exclude_prefixes`
specified for inclusion in the transfer.

The following are requirements of `include_prefixes`:

- Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported.
- Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`.
- None of the include-prefix values can be empty, if specified.
- Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from
  transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string[]` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getExcludePrefixes

If you specify `exclude_prefixes`, Storage Transfer Service uses the items
in the `exclude_prefixes` array to determine which objects to exclude from
a transfer. Objects must not start with one of the matching
`exclude_prefixes` for inclusion in a transfer.

The following are requirements of `exclude_prefixes`:

- Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported.
- Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`.
- None of the exclude-prefix values can be empty, if specified.
- Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix.
- If [include_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getIncludePrefixes__) is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from
  transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers).

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/RepeatedField<string>` |   |

### setExcludePrefixes

If you specify `exclude_prefixes`, Storage Transfer Service uses the items
in the `exclude_prefixes` array to determine which objects to exclude from
a transfer. Objects must not start with one of the matching
`exclude_prefixes` for inclusion in a transfer.

The following are requirements of `exclude_prefixes`:

- Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported.
- Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`.
- None of the exclude-prefix values can be empty, if specified.
- Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix.
- If [include_prefixes](https://docs.cloud.google.com/php/docs/reference/cloud-storage-transfer/latest/V1.ObjectConditions#_Google_Cloud_StorageTransfer_V1_ObjectConditions__getIncludePrefixes__) is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from
  transfers](https://docs.cloud.google.com/storage-transfer/docs/filtering-objects-from-transfers).

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `string[]` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getLastModifiedSince

If specified, only objects with a "last modification time" on or after
this timestamp and objects that don't have a "last modification time" are
transferred.

The `last_modified_since` and `last_modified_before` fields can be used
together for chunked data processing. For example, consider a script that
processes each day's worth of data at a time. For that you'd set each
of the fields as follows:

- `last_modified_since` to the start of the day
- `last_modified_before` to the end of the day

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp|null` |   |

### hasLastModifiedSince

### clearLastModifiedSince

### setLastModifiedSince

If specified, only objects with a "last modification time" on or after
this timestamp and objects that don't have a "last modification time" are
transferred.

The `last_modified_since` and `last_modified_before` fields can be used
together for chunked data processing. For example, consider a script that
processes each day's worth of data at a time. For that you'd set each
of the fields as follows:

- `last_modified_since` to the start of the day
- `last_modified_before` to the end of the day

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |

### getLastModifiedBefore

If specified, only objects with a "last modification time" before this
timestamp and objects that don't have a "last modification time" are
transferred.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp|null` |   |

### hasLastModifiedBefore

### clearLastModifiedBefore

### setLastModifiedBefore

If specified, only objects with a "last modification time" before this
timestamp and objects that don't have a "last modification time" are
transferred.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `var` | `https://protobuf.dev/reference/php/api-docs/Google/Protobuf/Timestamp` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `$this` |   |