/** * 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 UpdateAppRequest : public OpsWorksRequest { public: AWS_OPSWORKS_API UpdateAppRequest(); // 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 "UpdateApp"; } AWS_OPSWORKS_API Aws::String SerializePayload() const override; AWS_OPSWORKS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The app ID.

*/ inline const Aws::String& GetAppId() const{ return m_appId; } /** *

The app ID.

*/ inline bool AppIdHasBeenSet() const { return m_appIdHasBeenSet; } /** *

The app ID.

*/ inline void SetAppId(const Aws::String& value) { m_appIdHasBeenSet = true; m_appId = value; } /** *

The app ID.

*/ inline void SetAppId(Aws::String&& value) { m_appIdHasBeenSet = true; m_appId = std::move(value); } /** *

The app ID.

*/ inline void SetAppId(const char* value) { m_appIdHasBeenSet = true; m_appId.assign(value); } /** *

The app ID.

*/ inline UpdateAppRequest& WithAppId(const Aws::String& value) { SetAppId(value); return *this;} /** *

The app ID.

*/ inline UpdateAppRequest& WithAppId(Aws::String&& value) { SetAppId(std::move(value)); return *this;} /** *

The app ID.

*/ inline UpdateAppRequest& WithAppId(const char* value) { SetAppId(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 UpdateAppRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The app name.

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

The app name.

*/ inline UpdateAppRequest& 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 UpdateAppRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the app.

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

A description of the app.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app's data sources.

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

The app type.

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

The app type.

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

The app type.

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

The app type.

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

The app type.

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

The app type.

*/ inline UpdateAppRequest& 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 UpdateAppRequest& WithAppSource(const Source& value) { SetAppSource(value); return *this;} /** *

A Source object that specifies the app repository.

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

The app's 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's 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's 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's 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's virtual host settings, with multiple domains separated by commas. * For example: 'www.example.com, example.com'

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

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

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

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

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

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

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

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

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

Whether SSL is enabled for the app.

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

Whether SSL is enabled for the app.

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

Whether SSL is enabled for the app.

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

Whether SSL is enabled for the app.

*/ inline UpdateAppRequest& 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 UpdateAppRequest& WithSslConfiguration(const SslConfiguration& value) { SetSslConfiguration(value); return *this;} /** *

An SslConfiguration object with the SSL configuration.

*/ inline UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 UpdateAppRequest& 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 instances.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 20 KB)."

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 instances.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 20 KB)."

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 instances.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 20 KB)."

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 instances.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 20 KB)."

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 instances.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 20 KB)."

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

*/ inline UpdateAppRequest& 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 instances.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 20 KB)."

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

*/ inline UpdateAppRequest& 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 instances.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 20 KB)."

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

*/ inline UpdateAppRequest& 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 instances.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 20 KB)."

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

*/ inline UpdateAppRequest& AddEnvironment(EnvironmentVariable&& value) { m_environmentHasBeenSet = true; m_environment.push_back(std::move(value)); return *this; } private: Aws::String m_appId; bool m_appIdHasBeenSet = 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