/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { template class AmazonWebServiceResult; namespace Utils { namespace Json { class JsonValue; } // namespace Json } // namespace Utils namespace ServerlessApplicationRepository { namespace Model { class CreateApplicationVersionResult { public: AWS_SERVERLESSAPPLICATIONREPOSITORY_API CreateApplicationVersionResult(); AWS_SERVERLESSAPPLICATIONREPOSITORY_API CreateApplicationVersionResult(const Aws::AmazonWebServiceResult& result); AWS_SERVERLESSAPPLICATIONREPOSITORY_API CreateApplicationVersionResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

The application Amazon Resource Name (ARN).

*/ inline const Aws::String& GetApplicationId() const{ return m_applicationId; } /** *

The application Amazon Resource Name (ARN).

*/ inline void SetApplicationId(const Aws::String& value) { m_applicationId = value; } /** *

The application Amazon Resource Name (ARN).

*/ inline void SetApplicationId(Aws::String&& value) { m_applicationId = std::move(value); } /** *

The application Amazon Resource Name (ARN).

*/ inline void SetApplicationId(const char* value) { m_applicationId.assign(value); } /** *

The application Amazon Resource Name (ARN).

*/ inline CreateApplicationVersionResult& WithApplicationId(const Aws::String& value) { SetApplicationId(value); return *this;} /** *

The application Amazon Resource Name (ARN).

*/ inline CreateApplicationVersionResult& WithApplicationId(Aws::String&& value) { SetApplicationId(std::move(value)); return *this;} /** *

The application Amazon Resource Name (ARN).

*/ inline CreateApplicationVersionResult& WithApplicationId(const char* value) { SetApplicationId(value); return *this;} /** *

The date and time this resource was created.

*/ inline const Aws::String& GetCreationTime() const{ return m_creationTime; } /** *

The date and time this resource was created.

*/ inline void SetCreationTime(const Aws::String& value) { m_creationTime = value; } /** *

The date and time this resource was created.

*/ inline void SetCreationTime(Aws::String&& value) { m_creationTime = std::move(value); } /** *

The date and time this resource was created.

*/ inline void SetCreationTime(const char* value) { m_creationTime.assign(value); } /** *

The date and time this resource was created.

*/ inline CreateApplicationVersionResult& WithCreationTime(const Aws::String& value) { SetCreationTime(value); return *this;} /** *

The date and time this resource was created.

*/ inline CreateApplicationVersionResult& WithCreationTime(Aws::String&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The date and time this resource was created.

*/ inline CreateApplicationVersionResult& WithCreationTime(const char* value) { SetCreationTime(value); return *this;} /** *

An array of parameter types supported by the application.

*/ inline const Aws::Vector& GetParameterDefinitions() const{ return m_parameterDefinitions; } /** *

An array of parameter types supported by the application.

*/ inline void SetParameterDefinitions(const Aws::Vector& value) { m_parameterDefinitions = value; } /** *

An array of parameter types supported by the application.

*/ inline void SetParameterDefinitions(Aws::Vector&& value) { m_parameterDefinitions = std::move(value); } /** *

An array of parameter types supported by the application.

*/ inline CreateApplicationVersionResult& WithParameterDefinitions(const Aws::Vector& value) { SetParameterDefinitions(value); return *this;} /** *

An array of parameter types supported by the application.

*/ inline CreateApplicationVersionResult& WithParameterDefinitions(Aws::Vector&& value) { SetParameterDefinitions(std::move(value)); return *this;} /** *

An array of parameter types supported by the application.

*/ inline CreateApplicationVersionResult& AddParameterDefinitions(const ParameterDefinition& value) { m_parameterDefinitions.push_back(value); return *this; } /** *

An array of parameter types supported by the application.

*/ inline CreateApplicationVersionResult& AddParameterDefinitions(ParameterDefinition&& value) { m_parameterDefinitions.push_back(std::move(value)); return *this; } /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline const Aws::Vector& GetRequiredCapabilities() const{ return m_requiredCapabilities; } /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline void SetRequiredCapabilities(const Aws::Vector& value) { m_requiredCapabilities = value; } /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline void SetRequiredCapabilities(Aws::Vector&& value) { m_requiredCapabilities = std::move(value); } /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline CreateApplicationVersionResult& WithRequiredCapabilities(const Aws::Vector& value) { SetRequiredCapabilities(value); return *this;} /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline CreateApplicationVersionResult& WithRequiredCapabilities(Aws::Vector&& value) { SetRequiredCapabilities(std::move(value)); return *this;} /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline CreateApplicationVersionResult& AddRequiredCapabilities(const Capability& value) { m_requiredCapabilities.push_back(value); return *this; } /** *

A list of values that you must specify before you can deploy certain * applications. Some applications might include resources that can affect * permissions in your AWS account, for example, by creating new AWS Identity and * Access Management (IAM) users. For those applications, you must explicitly * acknowledge their capabilities by specifying this parameter.

The only * valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, * CAPABILITY_RESOURCE_POLICY, and CAPABILITY_AUTO_EXPAND.

The following * resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: AWS::IAM::Group, * AWS::IAM::InstanceProfile, * AWS::IAM::Policy, * and AWS::IAM::Role. * If the application contains IAM resources, you can specify either * CAPABILITY_IAM or CAPABILITY_NAMED_IAM. If the application contains IAM * resources with custom names, you must specify CAPABILITY_NAMED_IAM.

The * following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission, * AWS::IAM:Policy, * AWS::ApplicationAutoScaling::ScalingPolicy, * AWS::S3::BucketPolicy, * AWS::SQS::QueuePolicy, * and AWS::SNS::TopicPolicy.

Applications * that contain one or more nested applications require you to specify * CAPABILITY_AUTO_EXPAND.

If your application template contains any of the * above resources, we recommend that you review all permissions associated with * the application before deploying. If you don't specify this parameter for an * application that requires capabilities, the call will fail.

*/ inline CreateApplicationVersionResult& AddRequiredCapabilities(Capability&& value) { m_requiredCapabilities.push_back(std::move(value)); return *this; } /** *

Whether all of the AWS resources contained in this application are supported * in the region in which it is being retrieved.

*/ inline bool GetResourcesSupported() const{ return m_resourcesSupported; } /** *

Whether all of the AWS resources contained in this application are supported * in the region in which it is being retrieved.

*/ inline void SetResourcesSupported(bool value) { m_resourcesSupported = value; } /** *

Whether all of the AWS resources contained in this application are supported * in the region in which it is being retrieved.

*/ inline CreateApplicationVersionResult& WithResourcesSupported(bool value) { SetResourcesSupported(value); return *this;} /** *

The semantic version of the application:

https://semver.org/

*/ inline const Aws::String& GetSemanticVersion() const{ return m_semanticVersion; } /** *

The semantic version of the application:

https://semver.org/

*/ inline void SetSemanticVersion(const Aws::String& value) { m_semanticVersion = value; } /** *

The semantic version of the application:

https://semver.org/

*/ inline void SetSemanticVersion(Aws::String&& value) { m_semanticVersion = std::move(value); } /** *

The semantic version of the application:

https://semver.org/

*/ inline void SetSemanticVersion(const char* value) { m_semanticVersion.assign(value); } /** *

The semantic version of the application:

https://semver.org/

*/ inline CreateApplicationVersionResult& WithSemanticVersion(const Aws::String& value) { SetSemanticVersion(value); return *this;} /** *

The semantic version of the application:

https://semver.org/

*/ inline CreateApplicationVersionResult& WithSemanticVersion(Aws::String&& value) { SetSemanticVersion(std::move(value)); return *this;} /** *

The semantic version of the application:

https://semver.org/

*/ inline CreateApplicationVersionResult& WithSemanticVersion(const char* value) { SetSemanticVersion(value); return *this;} /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline const Aws::String& GetSourceCodeArchiveUrl() const{ return m_sourceCodeArchiveUrl; } /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline void SetSourceCodeArchiveUrl(const Aws::String& value) { m_sourceCodeArchiveUrl = value; } /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline void SetSourceCodeArchiveUrl(Aws::String&& value) { m_sourceCodeArchiveUrl = std::move(value); } /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline void SetSourceCodeArchiveUrl(const char* value) { m_sourceCodeArchiveUrl.assign(value); } /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline CreateApplicationVersionResult& WithSourceCodeArchiveUrl(const Aws::String& value) { SetSourceCodeArchiveUrl(value); return *this;} /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline CreateApplicationVersionResult& WithSourceCodeArchiveUrl(Aws::String&& value) { SetSourceCodeArchiveUrl(std::move(value)); return *this;} /** *

A link to the S3 object that contains the ZIP archive of the source code for * this version of your application.

Maximum size 50 MB

*/ inline CreateApplicationVersionResult& WithSourceCodeArchiveUrl(const char* value) { SetSourceCodeArchiveUrl(value); return *this;} /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline const Aws::String& GetSourceCodeUrl() const{ return m_sourceCodeUrl; } /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline void SetSourceCodeUrl(const Aws::String& value) { m_sourceCodeUrl = value; } /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline void SetSourceCodeUrl(Aws::String&& value) { m_sourceCodeUrl = std::move(value); } /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline void SetSourceCodeUrl(const char* value) { m_sourceCodeUrl.assign(value); } /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline CreateApplicationVersionResult& WithSourceCodeUrl(const Aws::String& value) { SetSourceCodeUrl(value); return *this;} /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline CreateApplicationVersionResult& WithSourceCodeUrl(Aws::String&& value) { SetSourceCodeUrl(std::move(value)); return *this;} /** *

A link to a public repository for the source code of your application, for * example the URL of a specific GitHub commit.

*/ inline CreateApplicationVersionResult& WithSourceCodeUrl(const char* value) { SetSourceCodeUrl(value); return *this;} /** *

A link to the packaged AWS SAM template of your application.

*/ inline const Aws::String& GetTemplateUrl() const{ return m_templateUrl; } /** *

A link to the packaged AWS SAM template of your application.

*/ inline void SetTemplateUrl(const Aws::String& value) { m_templateUrl = value; } /** *

A link to the packaged AWS SAM template of your application.

*/ inline void SetTemplateUrl(Aws::String&& value) { m_templateUrl = std::move(value); } /** *

A link to the packaged AWS SAM template of your application.

*/ inline void SetTemplateUrl(const char* value) { m_templateUrl.assign(value); } /** *

A link to the packaged AWS SAM template of your application.

*/ inline CreateApplicationVersionResult& WithTemplateUrl(const Aws::String& value) { SetTemplateUrl(value); return *this;} /** *

A link to the packaged AWS SAM template of your application.

*/ inline CreateApplicationVersionResult& WithTemplateUrl(Aws::String&& value) { SetTemplateUrl(std::move(value)); return *this;} /** *

A link to the packaged AWS SAM template of your application.

*/ inline CreateApplicationVersionResult& WithTemplateUrl(const char* value) { SetTemplateUrl(value); return *this;} inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline CreateApplicationVersionResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline CreateApplicationVersionResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline CreateApplicationVersionResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_applicationId; Aws::String m_creationTime; Aws::Vector m_parameterDefinitions; Aws::Vector m_requiredCapabilities; bool m_resourcesSupported; Aws::String m_semanticVersion; Aws::String m_sourceCodeArchiveUrl; Aws::String m_sourceCodeUrl; Aws::String m_templateUrl; Aws::String m_requestId; }; } // namespace Model } // namespace ServerlessApplicationRepository } // namespace Aws