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

The stack ID.

*/ inline const Aws::String& GetStackId() const{ return m_stackId; } /** *

The stack ID.

*/ inline bool StackIdHasBeenSet() const { return m_stackIdHasBeenSet; } /** *

The stack ID.

*/ inline void SetStackId(const Aws::String& value) { m_stackIdHasBeenSet = true; m_stackId = value; } /** *

The stack ID.

*/ inline void SetStackId(Aws::String&& value) { m_stackIdHasBeenSet = true; m_stackId = std::move(value); } /** *

The stack ID.

*/ inline void SetStackId(const char* value) { m_stackIdHasBeenSet = true; m_stackId.assign(value); } /** *

The stack ID.

*/ inline CreateAppRequest& WithStackId(const Aws::String& value) { SetStackId(value); return *this;} /** *

The stack ID.

*/ inline CreateAppRequest& WithStackId(Aws::String&& value) { SetStackId(std::move(value)); return *this;} /** *

The stack ID.

*/ inline CreateAppRequest& WithStackId(const char* value) { SetStackId(value); return *this;} /** *

The app's short name.

*/ inline const Aws::String& GetShortname() const{ return m_shortname; } /** *

The app's short name.

*/ inline bool ShortnameHasBeenSet() const { return m_shortnameHasBeenSet; } /** *

The app's short name.

*/ inline void SetShortname(const Aws::String& value) { m_shortnameHasBeenSet = true; m_shortname = value; } /** *

The app's short name.

*/ inline void SetShortname(Aws::String&& value) { m_shortnameHasBeenSet = true; m_shortname = std::move(value); } /** *

The app's short name.

*/ inline void SetShortname(const char* value) { m_shortnameHasBeenSet = true; m_shortname.assign(value); } /** *

The app's short name.

*/ inline CreateAppRequest& WithShortname(const Aws::String& value) { SetShortname(value); return *this;} /** *

The app's short name.

*/ inline CreateAppRequest& WithShortname(Aws::String&& value) { SetShortname(std::move(value)); return *this;} /** *

The app's short name.

*/ inline CreateAppRequest& WithShortname(const char* value) { SetShortname(value); return *this;} /** *

The app name.

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

The app name.

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

The app name.

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

The app name.

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

The app name.

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

The app name.

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

The app name.

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

The app name.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

A description of the app.

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

The app's data source.

*/ inline const Aws::Vector& GetDataSources() const{ return m_dataSources; } /** *

The app's data source.

*/ inline bool DataSourcesHasBeenSet() const { return m_dataSourcesHasBeenSet; } /** *

The app's data source.

*/ inline void SetDataSources(const Aws::Vector& value) { m_dataSourcesHasBeenSet = true; m_dataSources = value; } /** *

The app's data source.

*/ inline void SetDataSources(Aws::Vector&& value) { m_dataSourcesHasBeenSet = true; m_dataSources = std::move(value); } /** *

The app's data source.

*/ inline CreateAppRequest& WithDataSources(const Aws::Vector& value) { SetDataSources(value); return *this;} /** *

The app's data source.

*/ inline CreateAppRequest& WithDataSources(Aws::Vector&& value) { SetDataSources(std::move(value)); return *this;} /** *

The app's data source.

*/ inline CreateAppRequest& AddDataSources(const DataSource& value) { m_dataSourcesHasBeenSet = true; m_dataSources.push_back(value); return *this; } /** *

The app's data source.

*/ inline CreateAppRequest& AddDataSources(DataSource&& value) { m_dataSourcesHasBeenSet = true; m_dataSources.push_back(std::move(value)); return *this; } /** *

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

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

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

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

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

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

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

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

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

*/ inline CreateAppRequest& WithType(const AppType& value) { SetType(value); return *this;} /** *

The app type. Each supported type is associated with a particular layer. For * example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks * deploys an application to those instances that are members of the corresponding * layer. If your app isn't one of the standard types, or you prefer to implement * your own Deploy recipes, specify other.

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

A Source object that specifies the app repository.

*/ inline const Source& GetAppSource() const{ return m_appSource; } /** *

A Source object that specifies the app repository.

*/ inline bool AppSourceHasBeenSet() const { return m_appSourceHasBeenSet; } /** *

A Source object that specifies the app repository.

*/ inline void SetAppSource(const Source& value) { m_appSourceHasBeenSet = true; m_appSource = value; } /** *

A Source object that specifies the app repository.

*/ inline void SetAppSource(Source&& value) { m_appSourceHasBeenSet = true; m_appSource = std::move(value); } /** *

A Source object that specifies the app repository.

*/ inline CreateAppRequest& WithAppSource(const Source& value) { SetAppSource(value); return *this;} /** *

A Source object that specifies the app repository.

*/ inline CreateAppRequest& WithAppSource(Source&& value) { SetAppSource(std::move(value)); return *this;} /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline const Aws::Vector& GetDomains() const{ return m_domains; } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline bool DomainsHasBeenSet() const { return m_domainsHasBeenSet; } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline void SetDomains(const Aws::Vector& value) { m_domainsHasBeenSet = true; m_domains = value; } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline void SetDomains(Aws::Vector&& value) { m_domainsHasBeenSet = true; m_domains = std::move(value); } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline CreateAppRequest& WithDomains(const Aws::Vector& value) { SetDomains(value); return *this;} /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline CreateAppRequest& WithDomains(Aws::Vector&& value) { SetDomains(std::move(value)); return *this;} /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline CreateAppRequest& AddDomains(const Aws::String& value) { m_domainsHasBeenSet = true; m_domains.push_back(value); return *this; } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline CreateAppRequest& AddDomains(Aws::String&& value) { m_domainsHasBeenSet = true; m_domains.push_back(std::move(value)); return *this; } /** *

The app virtual host settings, with multiple domains separated by commas. For * example: 'www.example.com, example.com'

*/ inline CreateAppRequest& AddDomains(const char* value) { m_domainsHasBeenSet = true; m_domains.push_back(value); return *this; } /** *

Whether to enable SSL for the app.

*/ inline bool GetEnableSsl() const{ return m_enableSsl; } /** *

Whether to enable SSL for the app.

*/ inline bool EnableSslHasBeenSet() const { return m_enableSslHasBeenSet; } /** *

Whether to enable SSL for the app.

*/ inline void SetEnableSsl(bool value) { m_enableSslHasBeenSet = true; m_enableSsl = value; } /** *

Whether to enable SSL for the app.

*/ inline CreateAppRequest& WithEnableSsl(bool value) { SetEnableSsl(value); return *this;} /** *

An SslConfiguration object with the SSL configuration.

*/ inline const SslConfiguration& GetSslConfiguration() const{ return m_sslConfiguration; } /** *

An SslConfiguration object with the SSL configuration.

*/ inline bool SslConfigurationHasBeenSet() const { return m_sslConfigurationHasBeenSet; } /** *

An SslConfiguration object with the SSL configuration.

*/ inline void SetSslConfiguration(const SslConfiguration& value) { m_sslConfigurationHasBeenSet = true; m_sslConfiguration = value; } /** *

An SslConfiguration object with the SSL configuration.

*/ inline void SetSslConfiguration(SslConfiguration&& value) { m_sslConfigurationHasBeenSet = true; m_sslConfiguration = std::move(value); } /** *

An SslConfiguration object with the SSL configuration.

*/ inline CreateAppRequest& WithSslConfiguration(const SslConfiguration& value) { SetSslConfiguration(value); return *this;} /** *

An SslConfiguration object with the SSL configuration.

*/ inline CreateAppRequest& WithSslConfiguration(SslConfiguration&& value) { SetSslConfiguration(std::move(value)); return *this;} /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(const AppAttributesKeys& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(AppAttributesKeys&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(const AppAttributesKeys& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(AppAttributesKeys&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(AppAttributesKeys&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

One or more user-defined key/value pairs to be added to the stack * attributes.

*/ inline CreateAppRequest& AddAttributes(const AppAttributesKeys& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline const Aws::Vector& GetEnvironment() const{ return m_environment; } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline bool EnvironmentHasBeenSet() const { return m_environmentHasBeenSet; } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline void SetEnvironment(const Aws::Vector& value) { m_environmentHasBeenSet = true; m_environment = value; } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline void SetEnvironment(Aws::Vector&& value) { m_environmentHasBeenSet = true; m_environment = std::move(value); } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline CreateAppRequest& WithEnvironment(const Aws::Vector& value) { SetEnvironment(value); return *this;} /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline CreateAppRequest& WithEnvironment(Aws::Vector&& value) { SetEnvironment(std::move(value)); return *this;} /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline CreateAppRequest& AddEnvironment(const EnvironmentVariable& value) { m_environmentHasBeenSet = true; m_environment.push_back(value); return *this; } /** *

An array of EnvironmentVariable objects that specify environment * variables to be associated with the app. After you deploy the app, these * variables are defined on the associated app server instance. For more * information, see * Environment Variables.

There is no specific limit on the number of * environment variables. However, the size of the associated data structure - * which includes the variables' names, values, and protected flag values - cannot * exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding * it will cause an exception with the message, "Environment: is too large (maximum * is 20KB)."

If you have specified one or more environment * variables, you cannot modify the stack's Chef version.

*/ inline CreateAppRequest& AddEnvironment(EnvironmentVariable&& value) { m_environmentHasBeenSet = true; m_environment.push_back(std::move(value)); return *this; } private: Aws::String m_stackId; bool m_stackIdHasBeenSet = false; Aws::String m_shortname; bool m_shortnameHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_dataSources; bool m_dataSourcesHasBeenSet = false; AppType m_type; bool m_typeHasBeenSet = false; Source m_appSource; bool m_appSourceHasBeenSet = false; Aws::Vector m_domains; bool m_domainsHasBeenSet = false; bool m_enableSsl; bool m_enableSslHasBeenSet = false; SslConfiguration m_sslConfiguration; bool m_sslConfigurationHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; Aws::Vector m_environment; bool m_environmentHasBeenSet = false; }; } // namespace Model } // namespace OpsWorks } // namespace Aws