/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace S3Control { namespace Model { /** */ class CreateJobRequest : public S3ControlRequest { public: AWS_S3CONTROL_API CreateJobRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateJob"; } AWS_S3CONTROL_API Aws::String SerializePayload() const override; AWS_S3CONTROL_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** * Helper function to collect parameters (configurable and static hardcoded) required for endpoint computation. */ AWS_S3CONTROL_API EndpointParameters GetEndpointContextParams() const override; /** *

The Amazon Web Services account ID that creates the job.

*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *

The Amazon Web Services account ID that creates the job.

*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *

The Amazon Web Services account ID that creates the job.

*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *

The Amazon Web Services account ID that creates the job.

*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *

The Amazon Web Services account ID that creates the job.

*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *

The Amazon Web Services account ID that creates the job.

*/ inline CreateJobRequest& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *

The Amazon Web Services account ID that creates the job.

*/ inline CreateJobRequest& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account ID that creates the job.

*/ inline CreateJobRequest& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *

Indicates whether confirmation is required before Amazon S3 runs the job. * Confirmation is only required for jobs created through the Amazon S3 * console.

*/ inline bool GetConfirmationRequired() const{ return m_confirmationRequired; } /** *

Indicates whether confirmation is required before Amazon S3 runs the job. * Confirmation is only required for jobs created through the Amazon S3 * console.

*/ inline bool ConfirmationRequiredHasBeenSet() const { return m_confirmationRequiredHasBeenSet; } /** *

Indicates whether confirmation is required before Amazon S3 runs the job. * Confirmation is only required for jobs created through the Amazon S3 * console.

*/ inline void SetConfirmationRequired(bool value) { m_confirmationRequiredHasBeenSet = true; m_confirmationRequired = value; } /** *

Indicates whether confirmation is required before Amazon S3 runs the job. * Confirmation is only required for jobs created through the Amazon S3 * console.

*/ inline CreateJobRequest& WithConfirmationRequired(bool value) { SetConfirmationRequired(value); return *this;} /** *

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

*/ inline const JobOperation& GetOperation() const{ return m_operation; } /** *

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

*/ inline bool OperationHasBeenSet() const { return m_operationHasBeenSet; } /** *

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

*/ inline void SetOperation(const JobOperation& value) { m_operationHasBeenSet = true; m_operation = value; } /** *

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

*/ inline void SetOperation(JobOperation&& value) { m_operationHasBeenSet = true; m_operation = std::move(value); } /** *

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

*/ inline CreateJobRequest& WithOperation(const JobOperation& value) { SetOperation(value); return *this;} /** *

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

*/ inline CreateJobRequest& WithOperation(JobOperation&& value) { SetOperation(std::move(value)); return *this;} /** *

Configuration parameters for the optional job-completion report.

*/ inline const JobReport& GetReport() const{ return m_report; } /** *

Configuration parameters for the optional job-completion report.

*/ inline bool ReportHasBeenSet() const { return m_reportHasBeenSet; } /** *

Configuration parameters for the optional job-completion report.

*/ inline void SetReport(const JobReport& value) { m_reportHasBeenSet = true; m_report = value; } /** *

Configuration parameters for the optional job-completion report.

*/ inline void SetReport(JobReport&& value) { m_reportHasBeenSet = true; m_report = std::move(value); } /** *

Configuration parameters for the optional job-completion report.

*/ inline CreateJobRequest& WithReport(const JobReport& value) { SetReport(value); return *this;} /** *

Configuration parameters for the optional job-completion report.

*/ inline CreateJobRequest& WithReport(JobReport&& value) { SetReport(std::move(value)); return *this;} /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline CreateJobRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline CreateJobRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

An idempotency token to ensure that you don't accidentally submit the same * request twice. You can use any string up to the maximum length.

*/ inline CreateJobRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

Configuration parameters for the manifest.

*/ inline const JobManifest& GetManifest() const{ return m_manifest; } /** *

Configuration parameters for the manifest.

*/ inline bool ManifestHasBeenSet() const { return m_manifestHasBeenSet; } /** *

Configuration parameters for the manifest.

*/ inline void SetManifest(const JobManifest& value) { m_manifestHasBeenSet = true; m_manifest = value; } /** *

Configuration parameters for the manifest.

*/ inline void SetManifest(JobManifest&& value) { m_manifestHasBeenSet = true; m_manifest = std::move(value); } /** *

Configuration parameters for the manifest.

*/ inline CreateJobRequest& WithManifest(const JobManifest& value) { SetManifest(value); return *this;} /** *

Configuration parameters for the manifest.

*/ inline CreateJobRequest& WithManifest(JobManifest&& value) { SetManifest(std::move(value)); return *this;} /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline CreateJobRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline CreateJobRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for this job. You can use any string within the permitted * length. Descriptions don't need to be unique and can be used for multiple * jobs.

*/ inline CreateJobRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The numerical priority for this job. Higher numbers indicate higher * priority.

*/ inline int GetPriority() const{ return m_priority; } /** *

The numerical priority for this job. Higher numbers indicate higher * priority.

*/ inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; } /** *

The numerical priority for this job. Higher numbers indicate higher * priority.

*/ inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; } /** *

The numerical priority for this job. Higher numbers indicate higher * priority.

*/ inline CreateJobRequest& WithPriority(int value) { SetPriority(value); return *this;} /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline CreateJobRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline CreateJobRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) * role that Batch Operations will use to run this job's action on every object in * the manifest.

*/ inline CreateJobRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline CreateJobRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline CreateJobRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline CreateJobRequest& AddTags(const S3Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A set of tags to associate with the S3 Batch Operations job. This is an * optional parameter.

*/ inline CreateJobRequest& AddTags(S3Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline const JobManifestGenerator& GetManifestGenerator() const{ return m_manifestGenerator; } /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline bool ManifestGeneratorHasBeenSet() const { return m_manifestGeneratorHasBeenSet; } /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline void SetManifestGenerator(const JobManifestGenerator& value) { m_manifestGeneratorHasBeenSet = true; m_manifestGenerator = value; } /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline void SetManifestGenerator(JobManifestGenerator&& value) { m_manifestGeneratorHasBeenSet = true; m_manifestGenerator = std::move(value); } /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline CreateJobRequest& WithManifestGenerator(const JobManifestGenerator& value) { SetManifestGenerator(value); return *this;} /** *

The attribute container for the ManifestGenerator details. Jobs must be * created with either a manifest file or a ManifestGenerator, but not both.

*/ inline CreateJobRequest& WithManifestGenerator(JobManifestGenerator&& value) { SetManifestGenerator(std::move(value)); return *this;} private: Aws::String m_accountId; bool m_accountIdHasBeenSet = false; bool m_confirmationRequired; bool m_confirmationRequiredHasBeenSet = false; JobOperation m_operation; bool m_operationHasBeenSet = false; JobReport m_report; bool m_reportHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; JobManifest m_manifest; bool m_manifestHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; int m_priority; bool m_priorityHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; JobManifestGenerator m_manifestGenerator; bool m_manifestGeneratorHasBeenSet = false; }; } // namespace Model } // namespace S3Control } // namespace Aws