/** * 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 namespace Aws { namespace SSM { namespace Model { /** */ class AWS_SSM_API CreateAssociationRequest : public SSMRequest { public: CreateAssociationRequest(); // 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 "CreateAssociation"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline CreateAssociationRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline CreateAssociationRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the SSM document that contains the configuration information for * the instance. You can specify Command or Automation documents.

You can * specify AWS-predefined documents, documents you created, or a document that is * shared with you from another account.

For SSM documents that are shared * with you from other AWS accounts, you must specify the complete SSM document * ARN, in the following format:

* arn:partition:ssm:region:account-id:document/document-name *

For example:

* arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document

*

For AWS-predefined documents and SSM documents you created in your account, * you only need to specify the document name. For example, * AWS-ApplyPatchBaseline or My-Document.

*/ inline CreateAssociationRequest& WithName(const char* value) { SetName(value); return *this;} /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline const Aws::String& GetDocumentVersion() const{ return m_documentVersion; } /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline bool DocumentVersionHasBeenSet() const { return m_documentVersionHasBeenSet; } /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline void SetDocumentVersion(const Aws::String& value) { m_documentVersionHasBeenSet = true; m_documentVersion = value; } /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline void SetDocumentVersion(Aws::String&& value) { m_documentVersionHasBeenSet = true; m_documentVersion = std::move(value); } /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline void SetDocumentVersion(const char* value) { m_documentVersionHasBeenSet = true; m_documentVersion.assign(value); } /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline CreateAssociationRequest& WithDocumentVersion(const Aws::String& value) { SetDocumentVersion(value); return *this;} /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline CreateAssociationRequest& WithDocumentVersion(Aws::String&& value) { SetDocumentVersion(std::move(value)); return *this;} /** *

The document version you want to associate with the target(s). Can be a * specific version or the default version.

*/ inline CreateAssociationRequest& WithDocumentVersion(const char* value) { SetDocumentVersion(value); return *this;} /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline CreateAssociationRequest& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline CreateAssociationRequest& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The instance ID.

InstanceId has been deprecated. * To specify an instance ID for an association, use the Targets * parameter. Requests that include the parameter InstanceID with SSM * documents that use schema version 2.0 or later will fail. In addition, if you * use the parameter InstanceId, you cannot use the parameters * AssociationName, DocumentVersion, * MaxErrors, MaxConcurrency, * OutputLocation, or ScheduleExpression. To use these * parameters, you must use the Targets parameter.

*/ inline CreateAssociationRequest& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The parameters for the runtime configuration of the document.

*/ inline const Aws::Map>& GetParameters() const{ return m_parameters; } /** *

The parameters for the runtime configuration of the document.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

The parameters for the runtime configuration of the document.

*/ inline void SetParameters(const Aws::Map>& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

The parameters for the runtime configuration of the document.

*/ inline void SetParameters(Aws::Map>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& WithParameters(const Aws::Map>& value) { SetParameters(value); return *this;} /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& WithParameters(Aws::Map>&& value) { SetParameters(std::move(value)); return *this;} /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(const Aws::String& key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(Aws::String&& key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(const Aws::String& key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(Aws::String&& key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(const char* key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The parameters for the runtime configuration of the document.

*/ inline CreateAssociationRequest& AddParameters(const char* key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline const Aws::Vector& GetTargets() const{ return m_targets; } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline void SetTargets(const Aws::Vector& value) { m_targetsHasBeenSet = true; m_targets = value; } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline void SetTargets(Aws::Vector&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline CreateAssociationRequest& WithTargets(const Aws::Vector& value) { SetTargets(value); return *this;} /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline CreateAssociationRequest& WithTargets(Aws::Vector&& value) { SetTargets(std::move(value)); return *this;} /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline CreateAssociationRequest& AddTargets(const Target& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *

The targets for the association. You can target instances by using tags, AWS * Resource Groups, all instances in an AWS account, or individual instance IDs. * For more information about choosing targets for an association, see Using * targets and rate controls with State Manager associations in the AWS * Systems Manager User Guide.

*/ inline CreateAssociationRequest& AddTargets(Target&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; } /** *

A cron expression when the association will be applied to the target(s).

*/ inline const Aws::String& GetScheduleExpression() const{ return m_scheduleExpression; } /** *

A cron expression when the association will be applied to the target(s).

*/ inline bool ScheduleExpressionHasBeenSet() const { return m_scheduleExpressionHasBeenSet; } /** *

A cron expression when the association will be applied to the target(s).

*/ inline void SetScheduleExpression(const Aws::String& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = value; } /** *

A cron expression when the association will be applied to the target(s).

*/ inline void SetScheduleExpression(Aws::String&& value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression = std::move(value); } /** *

A cron expression when the association will be applied to the target(s).

*/ inline void SetScheduleExpression(const char* value) { m_scheduleExpressionHasBeenSet = true; m_scheduleExpression.assign(value); } /** *

A cron expression when the association will be applied to the target(s).

*/ inline CreateAssociationRequest& WithScheduleExpression(const Aws::String& value) { SetScheduleExpression(value); return *this;} /** *

A cron expression when the association will be applied to the target(s).

*/ inline CreateAssociationRequest& WithScheduleExpression(Aws::String&& value) { SetScheduleExpression(std::move(value)); return *this;} /** *

A cron expression when the association will be applied to the target(s).

*/ inline CreateAssociationRequest& WithScheduleExpression(const char* value) { SetScheduleExpression(value); return *this;} /** *

An S3 bucket where you want to store the output details of the request.

*/ inline const InstanceAssociationOutputLocation& GetOutputLocation() const{ return m_outputLocation; } /** *

An S3 bucket where you want to store the output details of the request.

*/ inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; } /** *

An S3 bucket where you want to store the output details of the request.

*/ inline void SetOutputLocation(const InstanceAssociationOutputLocation& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; } /** *

An S3 bucket where you want to store the output details of the request.

*/ inline void SetOutputLocation(InstanceAssociationOutputLocation&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); } /** *

An S3 bucket where you want to store the output details of the request.

*/ inline CreateAssociationRequest& WithOutputLocation(const InstanceAssociationOutputLocation& value) { SetOutputLocation(value); return *this;} /** *

An S3 bucket where you want to store the output details of the request.

*/ inline CreateAssociationRequest& WithOutputLocation(InstanceAssociationOutputLocation&& value) { SetOutputLocation(std::move(value)); return *this;} /** *

Specify a descriptive name for the association.

*/ inline const Aws::String& GetAssociationName() const{ return m_associationName; } /** *

Specify a descriptive name for the association.

*/ inline bool AssociationNameHasBeenSet() const { return m_associationNameHasBeenSet; } /** *

Specify a descriptive name for the association.

*/ inline void SetAssociationName(const Aws::String& value) { m_associationNameHasBeenSet = true; m_associationName = value; } /** *

Specify a descriptive name for the association.

*/ inline void SetAssociationName(Aws::String&& value) { m_associationNameHasBeenSet = true; m_associationName = std::move(value); } /** *

Specify a descriptive name for the association.

*/ inline void SetAssociationName(const char* value) { m_associationNameHasBeenSet = true; m_associationName.assign(value); } /** *

Specify a descriptive name for the association.

*/ inline CreateAssociationRequest& WithAssociationName(const Aws::String& value) { SetAssociationName(value); return *this;} /** *

Specify a descriptive name for the association.

*/ inline CreateAssociationRequest& WithAssociationName(Aws::String&& value) { SetAssociationName(std::move(value)); return *this;} /** *

Specify a descriptive name for the association.

*/ inline CreateAssociationRequest& WithAssociationName(const char* value) { SetAssociationName(value); return *this;} /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline const Aws::String& GetAutomationTargetParameterName() const{ return m_automationTargetParameterName; } /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline bool AutomationTargetParameterNameHasBeenSet() const { return m_automationTargetParameterNameHasBeenSet; } /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline void SetAutomationTargetParameterName(const Aws::String& value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName = value; } /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline void SetAutomationTargetParameterName(Aws::String&& value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName = std::move(value); } /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline void SetAutomationTargetParameterName(const char* value) { m_automationTargetParameterNameHasBeenSet = true; m_automationTargetParameterName.assign(value); } /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline CreateAssociationRequest& WithAutomationTargetParameterName(const Aws::String& value) { SetAutomationTargetParameterName(value); return *this;} /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline CreateAssociationRequest& WithAutomationTargetParameterName(Aws::String&& value) { SetAutomationTargetParameterName(std::move(value)); return *this;} /** *

Specify the target for the association. This target is required for * associations that use an Automation document and target resources by using rate * controls.

*/ inline CreateAssociationRequest& WithAutomationTargetParameterName(const char* value) { SetAutomationTargetParameterName(value); return *this;} /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline const Aws::String& GetMaxErrors() const{ return m_maxErrors; } /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline bool MaxErrorsHasBeenSet() const { return m_maxErrorsHasBeenSet; } /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline void SetMaxErrors(const Aws::String& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = value; } /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline void SetMaxErrors(Aws::String&& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = std::move(value); } /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline void SetMaxErrors(const char* value) { m_maxErrorsHasBeenSet = true; m_maxErrors.assign(value); } /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline CreateAssociationRequest& WithMaxErrors(const Aws::String& value) { SetMaxErrors(value); return *this;} /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline CreateAssociationRequest& WithMaxErrors(Aws::String&& value) { SetMaxErrors(std::move(value)); return *this;} /** *

The number of errors that are allowed before the system stops sending * requests to run the association on additional targets. You can specify either an * absolute number of errors, for example 10, or a percentage of the target set, * for example 10%. If you specify 3, for example, the system stops sending * requests when the fourth error is received. If you specify 0, then the system * stops sending requests after the first error is returned. If you run an * association on 50 instances and set MaxError to 10%, then the system stops * sending the request when the sixth error is received.

Executions that are * already running an association when MaxErrors is reached are allowed to * complete, but some of these executions may fail as well. If you need to ensure * that there won't be more than max-errors failed executions, set MaxConcurrency * to 1 so that executions proceed one at a time.

*/ inline CreateAssociationRequest& WithMaxErrors(const char* value) { SetMaxErrors(value); return *this;} /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline const Aws::String& GetMaxConcurrency() const{ return m_maxConcurrency; } /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline bool MaxConcurrencyHasBeenSet() const { return m_maxConcurrencyHasBeenSet; } /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline void SetMaxConcurrency(const Aws::String& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = value; } /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline void SetMaxConcurrency(Aws::String&& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = std::move(value); } /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline void SetMaxConcurrency(const char* value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency.assign(value); } /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline CreateAssociationRequest& WithMaxConcurrency(const Aws::String& value) { SetMaxConcurrency(value); return *this;} /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline CreateAssociationRequest& WithMaxConcurrency(Aws::String&& value) { SetMaxConcurrency(std::move(value)); return *this;} /** *

The maximum number of targets allowed to run the association at the same * time. You can specify a number, for example 10, or a percentage of the target * set, for example 10%. The default value is 100%, which means all targets run the * association at the same time.

If a new instance starts and attempts to * run an association while Systems Manager is running MaxConcurrency associations, * the association is allowed to run. During the next association interval, the new * instance will process its association within the limit specified for * MaxConcurrency.

*/ inline CreateAssociationRequest& WithMaxConcurrency(const char* value) { SetMaxConcurrency(value); return *this;} /** *

The severity level to assign to the association.

*/ inline const AssociationComplianceSeverity& GetComplianceSeverity() const{ return m_complianceSeverity; } /** *

The severity level to assign to the association.

*/ inline bool ComplianceSeverityHasBeenSet() const { return m_complianceSeverityHasBeenSet; } /** *

The severity level to assign to the association.

*/ inline void SetComplianceSeverity(const AssociationComplianceSeverity& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = value; } /** *

The severity level to assign to the association.

*/ inline void SetComplianceSeverity(AssociationComplianceSeverity&& value) { m_complianceSeverityHasBeenSet = true; m_complianceSeverity = std::move(value); } /** *

The severity level to assign to the association.

*/ inline CreateAssociationRequest& WithComplianceSeverity(const AssociationComplianceSeverity& value) { SetComplianceSeverity(value); return *this;} /** *

The severity level to assign to the association.

*/ inline CreateAssociationRequest& WithComplianceSeverity(AssociationComplianceSeverity&& value) { SetComplianceSeverity(std::move(value)); return *this;} /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline const AssociationSyncCompliance& GetSyncCompliance() const{ return m_syncCompliance; } /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline bool SyncComplianceHasBeenSet() const { return m_syncComplianceHasBeenSet; } /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline void SetSyncCompliance(const AssociationSyncCompliance& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = value; } /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline void SetSyncCompliance(AssociationSyncCompliance&& value) { m_syncComplianceHasBeenSet = true; m_syncCompliance = std::move(value); } /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline CreateAssociationRequest& WithSyncCompliance(const AssociationSyncCompliance& value) { SetSyncCompliance(value); return *this;} /** *

The mode for generating association compliance. You can specify * AUTO or MANUAL. In AUTO mode, the system * uses the status of the association execution to determine the compliance status. * If the association execution runs successfully, then the association is * COMPLIANT. If the association execution doesn't run successfully, * the association is NON-COMPLIANT.

In MANUAL * mode, you must specify the AssociationId as a parameter for the * PutComplianceItems API action. In this case, compliance data is not * managed by State Manager. It is managed by your direct call to the * PutComplianceItems API action.

By default, all associations use * AUTO mode.

*/ inline CreateAssociationRequest& WithSyncCompliance(AssociationSyncCompliance&& value) { SetSyncCompliance(std::move(value)); return *this;} /** *

By default, when you create a new associations, the system runs it * immediately after it is created and then according to the schedule you * specified. Specify this option if you don't want an association to run * immediately after you create it.

*/ inline bool GetApplyOnlyAtCronInterval() const{ return m_applyOnlyAtCronInterval; } /** *

By default, when you create a new associations, the system runs it * immediately after it is created and then according to the schedule you * specified. Specify this option if you don't want an association to run * immediately after you create it.

*/ inline bool ApplyOnlyAtCronIntervalHasBeenSet() const { return m_applyOnlyAtCronIntervalHasBeenSet; } /** *

By default, when you create a new associations, the system runs it * immediately after it is created and then according to the schedule you * specified. Specify this option if you don't want an association to run * immediately after you create it.

*/ inline void SetApplyOnlyAtCronInterval(bool value) { m_applyOnlyAtCronIntervalHasBeenSet = true; m_applyOnlyAtCronInterval = value; } /** *

By default, when you create a new associations, the system runs it * immediately after it is created and then according to the schedule you * specified. Specify this option if you don't want an association to run * immediately after you create it.

*/ inline CreateAssociationRequest& WithApplyOnlyAtCronInterval(bool value) { SetApplyOnlyAtCronInterval(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet; Aws::String m_documentVersion; bool m_documentVersionHasBeenSet; Aws::String m_instanceId; bool m_instanceIdHasBeenSet; Aws::Map> m_parameters; bool m_parametersHasBeenSet; Aws::Vector m_targets; bool m_targetsHasBeenSet; Aws::String m_scheduleExpression; bool m_scheduleExpressionHasBeenSet; InstanceAssociationOutputLocation m_outputLocation; bool m_outputLocationHasBeenSet; Aws::String m_associationName; bool m_associationNameHasBeenSet; Aws::String m_automationTargetParameterName; bool m_automationTargetParameterNameHasBeenSet; Aws::String m_maxErrors; bool m_maxErrorsHasBeenSet; Aws::String m_maxConcurrency; bool m_maxConcurrencyHasBeenSet; AssociationComplianceSeverity m_complianceSeverity; bool m_complianceSeverityHasBeenSet; AssociationSyncCompliance m_syncCompliance; bool m_syncComplianceHasBeenSet; bool m_applyOnlyAtCronInterval; bool m_applyOnlyAtCronIntervalHasBeenSet; }; } // namespace Model } // namespace SSM } // namespace Aws