/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ServiceCatalog { namespace Model { /** *

Information about a provisioning artifact (also known as a version) for a * product.

See Also:

AWS * API Reference

*/ class ProvisioningArtifactProperties { public: AWS_SERVICECATALOG_API ProvisioningArtifactProperties(); AWS_SERVICECATALOG_API ProvisioningArtifactProperties(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICECATALOG_API ProvisioningArtifactProperties& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICECATALOG_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The name of the provisioning artifact (for example, v1 v2beta). No spaces are * allowed.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

The description of the provisioning artifact, including how it differs from * the previous provisioning artifact.

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

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline const Aws::Map& GetInfo() const{ return m_info; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline bool InfoHasBeenSet() const { return m_infoHasBeenSet; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline void SetInfo(const Aws::Map& value) { m_infoHasBeenSet = true; m_info = value; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline void SetInfo(Aws::Map&& value) { m_infoHasBeenSet = true; m_info = std::move(value); } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& WithInfo(const Aws::Map& value) { SetInfo(value); return *this;} /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& WithInfo(Aws::Map&& value) { SetInfo(std::move(value)); return *this;} /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(const Aws::String& key, const Aws::String& value) { m_infoHasBeenSet = true; m_info.emplace(key, value); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(Aws::String&& key, const Aws::String& value) { m_infoHasBeenSet = true; m_info.emplace(std::move(key), value); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(const Aws::String& key, Aws::String&& value) { m_infoHasBeenSet = true; m_info.emplace(key, std::move(value)); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(Aws::String&& key, Aws::String&& value) { m_infoHasBeenSet = true; m_info.emplace(std::move(key), std::move(value)); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(const char* key, Aws::String&& value) { m_infoHasBeenSet = true; m_info.emplace(key, std::move(value)); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(Aws::String&& key, const char* value) { m_infoHasBeenSet = true; m_info.emplace(std::move(key), value); return *this; } /** *

Specify the template source with one of the following options, but not both. * Keys accepted: [ LoadTemplateFromURL, * ImportFromPhysicalId ]

The URL of the CloudFormation * template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format * as follows:

"LoadTemplateFromURL": * "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

*

ImportFromPhysicalId: The physical id of the resource that * contains the template. Currently only supports CloudFormation stack arn. Specify * the physical id in JSON format as follows: ImportFromPhysicalId: * “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId] *

*/ inline ProvisioningArtifactProperties& AddInfo(const char* key, const char* value) { m_infoHasBeenSet = true; m_info.emplace(key, value); return *this; } /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline const ProvisioningArtifactType& GetType() const{ return m_type; } /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline void SetType(const ProvisioningArtifactType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline void SetType(ProvisioningArtifactType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline ProvisioningArtifactProperties& WithType(const ProvisioningArtifactType& value) { SetType(value); return *this;} /** *

The type of provisioning artifact.

  • * CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • *

    MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • *
  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters * and Amazon Web Services Resources

  • * TERRAFORM_OPEN_SOURCE - Terraform open source configuration * file

*/ inline ProvisioningArtifactProperties& WithType(ProvisioningArtifactType&& value) { SetType(std::move(value)); return *this;} /** *

If set to true, Service Catalog stops validating the specified provisioning * artifact even if it is invalid.

*/ inline bool GetDisableTemplateValidation() const{ return m_disableTemplateValidation; } /** *

If set to true, Service Catalog stops validating the specified provisioning * artifact even if it is invalid.

*/ inline bool DisableTemplateValidationHasBeenSet() const { return m_disableTemplateValidationHasBeenSet; } /** *

If set to true, Service Catalog stops validating the specified provisioning * artifact even if it is invalid.

*/ inline void SetDisableTemplateValidation(bool value) { m_disableTemplateValidationHasBeenSet = true; m_disableTemplateValidation = value; } /** *

If set to true, Service Catalog stops validating the specified provisioning * artifact even if it is invalid.

*/ inline ProvisioningArtifactProperties& WithDisableTemplateValidation(bool value) { SetDisableTemplateValidation(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Map m_info; bool m_infoHasBeenSet = false; ProvisioningArtifactType m_type; bool m_typeHasBeenSet = false; bool m_disableTemplateValidation; bool m_disableTemplateValidationHasBeenSet = false; }; } // namespace Model } // namespace ServiceCatalog } // namespace Aws