Class: Google::Apis::StoragetransferV1::ObjectConditions

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/storagetransfer_v1/classes.rb,
lib/google/apis/storagetransfer_v1/representations.rb,
lib/google/apis/storagetransfer_v1/representations.rb

Overview

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 for more information. Transfers with a PosixFilesystem source or destination don't support ObjectConditions.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ ObjectConditions

Returns a new instance of ObjectConditions.



1046
1047
1048
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1046

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#exclude_prefixesArray<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 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. Corresponds to the JSON property excludePrefixes

Returns:

  • (Array<String>)


966
967
968
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 966

def exclude_prefixes
  @exclude_prefixes
end

#include_prefixesArray<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 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. Corresponds to the JSON property includePrefixes

Returns:

  • (Array<String>)


987
988
989
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 987

def include_prefixes
  @include_prefixes
end

#include_storage_classesArray<String>

Optional. If specified, objects in the source matching any of the storage classes in this field will be transferred. Objects in storage classes not included in this field will be skipped. If empty, the default behavior regarding the storage classes is applied. This includes all storage classes except "GLACIER" as per default behavior. Currently, this field only supports S3 data source. For the list of valid Amazon S3 storage classnames, please refer to the AWS documentation: https://docs.aws.amazon.com/AmazonS3/latest/ userguide/sc-howtoset.html Corresponds to the JSON property includeStorageClasses

Returns:

  • (Array<String>)


999
1000
1001
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 999

def include_storage_classes
  @include_storage_classes
end

#last_modified_beforeString

If specified, only objects with a "last modification time" before this timestamp and objects that don't have a "last modification time" are transferred. Corresponds to the JSON property lastModifiedBefore

Returns:

  • (String)


1006
1007
1008
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1006

def last_modified_before
  @last_modified_before
end

#last_modified_sinceString

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 Corresponds to the JSON property lastModifiedSince

Returns:

  • (String)


1017
1018
1019
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1017

def last_modified_since
  @last_modified_since
end

#match_globString

Optional. If specified, only objects matching this glob are transferred. Corresponds to the JSON property matchGlob

Returns:

  • (String)


1022
1023
1024
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1022

def match_glob
  @match_glob
end

#max_time_elapsed_since_last_modificationString

Ensures that objects are not transferred if a specific maximum time has elapsed since the "last modification time". When a TransferOperation begins, objects with a "last modification time" are transferred only if the elapsed time between the start_time of the TransferOperationand 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. Corresponds to the JSON propertymaxTimeElapsedSinceLastModification`

Returns:

  • (String)


1033
1034
1035
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1033

def max_time_elapsed_since_last_modification
  @max_time_elapsed_since_last_modification
end

#min_time_elapsed_since_last_modificationString

Ensures that objects are not transferred until a specific minimum time has elapsed after the "last modification time". When a TransferOperation begins, objects with a "last modification time" are transferred only if the elapsed time between the start_time 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. Corresponds to the JSON propertyminTimeElapsedSinceLastModification`

Returns:

  • (String)


1044
1045
1046
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1044

def min_time_elapsed_since_last_modification
  @min_time_elapsed_since_last_modification
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
# File 'lib/google/apis/storagetransfer_v1/classes.rb', line 1051

def update!(**args)
  @exclude_prefixes = args[:exclude_prefixes] if args.key?(:exclude_prefixes)
  @include_prefixes = args[:include_prefixes] if args.key?(:include_prefixes)
  @include_storage_classes = args[:include_storage_classes] if args.key?(:include_storage_classes)
  @last_modified_before = args[:last_modified_before] if args.key?(:last_modified_before)
  @last_modified_since = args[:last_modified_since] if args.key?(:last_modified_since)
  @match_glob = args[:match_glob] if args.key?(:match_glob)
  @max_time_elapsed_since_last_modification = args[:max_time_elapsed_since_last_modification] if args.key?(:max_time_elapsed_since_last_modification)
  @min_time_elapsed_since_last_modification = args[:min_time_elapsed_since_last_modification] if args.key?(:min_time_elapsed_since_last_modification)
end