/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace CloudControlApi { namespace Model { /** */ class CreateResourceRequest : public CloudControlApiRequest { public: AWS_CLOUDCONTROLAPI_API CreateResourceRequest(); // 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 "CreateResource"; } AWS_CLOUDCONTROLAPI_API Aws::String SerializePayload() const override; AWS_CLOUDCONTROLAPI_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the resource type.

*/ inline const Aws::String& GetTypeName() const{ return m_typeName; } /** *

The name of the resource type.

*/ inline bool TypeNameHasBeenSet() const { return m_typeNameHasBeenSet; } /** *

The name of the resource type.

*/ inline void SetTypeName(const Aws::String& value) { m_typeNameHasBeenSet = true; m_typeName = value; } /** *

The name of the resource type.

*/ inline void SetTypeName(Aws::String&& value) { m_typeNameHasBeenSet = true; m_typeName = std::move(value); } /** *

The name of the resource type.

*/ inline void SetTypeName(const char* value) { m_typeNameHasBeenSet = true; m_typeName.assign(value); } /** *

The name of the resource type.

*/ inline CreateResourceRequest& WithTypeName(const Aws::String& value) { SetTypeName(value); return *this;} /** *

The name of the resource type.

*/ inline CreateResourceRequest& WithTypeName(Aws::String&& value) { SetTypeName(std::move(value)); return *this;} /** *

The name of the resource type.

*/ inline CreateResourceRequest& WithTypeName(const char* value) { SetTypeName(value); return *this;} /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline const Aws::String& GetTypeVersionId() const{ return m_typeVersionId; } /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline bool TypeVersionIdHasBeenSet() const { return m_typeVersionIdHasBeenSet; } /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline void SetTypeVersionId(const Aws::String& value) { m_typeVersionIdHasBeenSet = true; m_typeVersionId = value; } /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline void SetTypeVersionId(Aws::String&& value) { m_typeVersionIdHasBeenSet = true; m_typeVersionId = std::move(value); } /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline void SetTypeVersionId(const char* value) { m_typeVersionIdHasBeenSet = true; m_typeVersionId.assign(value); } /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline CreateResourceRequest& WithTypeVersionId(const Aws::String& value) { SetTypeVersionId(value); return *this;} /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline CreateResourceRequest& WithTypeVersionId(Aws::String&& value) { SetTypeVersionId(std::move(value)); return *this;} /** *

For private resource types, the type version to use in this resource * operation. If you do not specify a resource version, CloudFormation uses the * default version.

*/ inline CreateResourceRequest& WithTypeVersionId(const char* value) { SetTypeVersionId(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role for Cloud Control API to use when performing this resource operation. The * role specified must have the permissions required for this operation. The * necessary permissions for each event handler are defined in the handlers * section of the resource * type definition schema.

If you do not specify a role, Cloud Control * API uses a temporary session created using your Amazon Web Services user * credentials.

For more information, see Specifying * credentials in the Amazon Web Services Cloud Control API User * Guide.

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

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline CreateResourceRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline CreateResourceRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique identifier to ensure the idempotency of the resource request. As a * best practice, specify this token to ensure idempotency, so that Amazon Web * Services Cloud Control API can accurately distinguish between request retries * and new resource requests. You might retry a resource request to ensure that it * was successfully received.

A client token is valid for 36 hours once * used. After that, a resource request with the same client token is treated as a * new request.

If you do not specify a client token, one is generated for * inclusion in the request.

For more information, see Ensuring * resource operation requests are unique in the Amazon Web Services Cloud * Control API User Guide.

*/ inline CreateResourceRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline const Aws::String& GetDesiredState() const{ return m_desiredState; } /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline bool DesiredStateHasBeenSet() const { return m_desiredStateHasBeenSet; } /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline void SetDesiredState(const Aws::String& value) { m_desiredStateHasBeenSet = true; m_desiredState = value; } /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline void SetDesiredState(Aws::String&& value) { m_desiredStateHasBeenSet = true; m_desiredState = std::move(value); } /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline void SetDesiredState(const char* value) { m_desiredStateHasBeenSet = true; m_desiredState.assign(value); } /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline CreateResourceRequest& WithDesiredState(const Aws::String& value) { SetDesiredState(value); return *this;} /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline CreateResourceRequest& WithDesiredState(Aws::String&& value) { SetDesiredState(std::move(value)); return *this;} /** *

Structured data format representing the desired state of the resource, * consisting of that resource's properties and their desired values.

*

Cloud Control API currently supports JSON as a structured data format.

*

Specify the desired state as one of the following:

  • A * JSON blob

  • A local path containing the desired state in JSON * data format

For more information, see Composing * the desired state of the resource in the Amazon Web Services Cloud * Control API User Guide.

For more information about the properties of * a specific resource, refer to the related topic for the resource in the Resource * and property types reference in the CloudFormation Users Guide.

*/ inline CreateResourceRequest& WithDesiredState(const char* value) { SetDesiredState(value); return *this;} private: Aws::String m_typeName; bool m_typeNameHasBeenSet = false; Aws::String m_typeVersionId; bool m_typeVersionIdHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::String m_desiredState; bool m_desiredStateHasBeenSet = false; }; } // namespace Model } // namespace CloudControlApi } // namespace Aws