class Aws::S3Control::Types::JobOperation

The operation that you want this job to perform on every object listed in the manifest. For more information about the available operations, see [Operations] in the *Amazon S3 User Guide*.

[1]: docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html

@note When making an API call, you may pass JobOperation

data as a hash:

    {
      lambda_invoke: {
        function_arn: "FunctionArnString",
      },
      s3_put_object_copy: {
        target_resource: "S3BucketArnString",
        canned_access_control_list: "private", # accepts private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control
        access_control_grants: [
          {
            grantee: {
              type_identifier: "id", # accepts id, emailAddress, uri
              identifier: "NonEmptyMaxLength1024String",
              display_name: "NonEmptyMaxLength1024String",
            },
            permission: "FULL_CONTROL", # accepts FULL_CONTROL, READ, WRITE, READ_ACP, WRITE_ACP
          },
        ],
        metadata_directive: "COPY", # accepts COPY, REPLACE
        modified_since_constraint: Time.now,
        new_object_metadata: {
          cache_control: "NonEmptyMaxLength1024String",
          content_disposition: "NonEmptyMaxLength1024String",
          content_encoding: "NonEmptyMaxLength1024String",
          content_language: "NonEmptyMaxLength1024String",
          user_metadata: {
            "NonEmptyMaxLength1024String" => "MaxLength1024String",
          },
          content_length: 1,
          content_md5: "NonEmptyMaxLength1024String",
          content_type: "NonEmptyMaxLength1024String",
          http_expires_date: Time.now,
          requester_charged: false,
          sse_algorithm: "AES256", # accepts AES256, KMS
        },
        new_object_tagging: [
          {
            key: "TagKeyString", # required
            value: "TagValueString", # required
          },
        ],
        redirect_location: "NonEmptyMaxLength2048String",
        requester_pays: false,
        storage_class: "STANDARD", # accepts STANDARD, STANDARD_IA, ONEZONE_IA, GLACIER, INTELLIGENT_TIERING, DEEP_ARCHIVE
        un_modified_since_constraint: Time.now,
        sse_aws_kms_key_id: "KmsKeyArnString",
        target_key_prefix: "NonEmptyMaxLength1024String",
        object_lock_legal_hold_status: "OFF", # accepts OFF, ON
        object_lock_mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
        object_lock_retain_until_date: Time.now,
        bucket_key_enabled: false,
      },
      s3_put_object_acl: {
        access_control_policy: {
          access_control_list: {
            owner: { # required
              id: "NonEmptyMaxLength1024String",
              display_name: "NonEmptyMaxLength1024String",
            },
            grants: [
              {
                grantee: {
                  type_identifier: "id", # accepts id, emailAddress, uri
                  identifier: "NonEmptyMaxLength1024String",
                  display_name: "NonEmptyMaxLength1024String",
                },
                permission: "FULL_CONTROL", # accepts FULL_CONTROL, READ, WRITE, READ_ACP, WRITE_ACP
              },
            ],
          },
          canned_access_control_list: "private", # accepts private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control
        },
      },
      s3_put_object_tagging: {
        tag_set: [
          {
            key: "TagKeyString", # required
            value: "TagValueString", # required
          },
        ],
      },
      s3_delete_object_tagging: {
      },
      s3_initiate_restore_object: {
        expiration_in_days: 1,
        glacier_job_tier: "BULK", # accepts BULK, STANDARD
      },
      s3_put_object_legal_hold: {
        legal_hold: { # required
          status: "OFF", # required, accepts OFF, ON
        },
      },
      s3_put_object_retention: {
        bypass_governance_retention: false,
        retention: { # required
          retain_until_date: Time.now,
          mode: "COMPLIANCE", # accepts COMPLIANCE, GOVERNANCE
        },
      },
    }

@!attribute [rw] lambda_invoke

Directs the specified job to invoke an Lambda function on every
object in the manifest.
@return [Types::LambdaInvokeOperation]

@!attribute [rw] s3_put_object_copy

Directs the specified job to run a PUT Copy object call on every
object in the manifest.
@return [Types::S3CopyObjectOperation]

@!attribute [rw] s3_put_object_acl

Directs the specified job to run a PUT Object acl call on every
object in the manifest.
@return [Types::S3SetObjectAclOperation]

@!attribute [rw] s3_put_object_tagging

Directs the specified job to run a PUT Object tagging call on every
object in the manifest.
@return [Types::S3SetObjectTaggingOperation]

@!attribute [rw] s3_delete_object_tagging

Directs the specified job to execute a DELETE Object tagging call on
every object in the manifest.
@return [Types::S3DeleteObjectTaggingOperation]

@!attribute [rw] s3_initiate_restore_object

Directs the specified job to initiate restore requests for every
archived object in the manifest.
@return [Types::S3InitiateRestoreObjectOperation]

@!attribute [rw] s3_put_object_legal_hold

Contains the configuration for an S3 Object Lock legal hold
operation that an S3 Batch Operations job passes every object to the
underlying `PutObjectLegalHold` API. For more information, see
[Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
*Amazon S3 User Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html
@return [Types::S3SetObjectLegalHoldOperation]

@!attribute [rw] s3_put_object_retention

Contains the configuration parameters for the Object Lock retention
action for an S3 Batch Operations job. Batch Operations passes every
object to the underlying `PutObjectRetention` API. For more
information, see [Using S3 Object Lock retention with S3 Batch
Operations][1] in the *Amazon S3 User Guide*.

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html
@return [Types::S3SetObjectRetentionOperation]

@see docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/JobOperation AWS API Documentation

Constants

SENSITIVE