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

A description of the app.

See Also:

AWS API * Reference

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

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

The app ID.

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

The app ID.

*/ inline App& WithAppId(const char* value) { SetAppId(value); return *this;} /** *

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app stack ID.

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

The app's short name.

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

The app's short name.

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

The app name.

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

The app name.

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

A description of the app.

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

A description of the app.

*/ inline App& 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 App& WithDataSources(const Aws::Vector& value) { SetDataSources(value); return *this;} /** *

The app's data sources.

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

The app's data sources.

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

The app's data sources.

*/ inline App& 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 App& WithType(const AppType& value) { SetType(value); return *this;} /** *

The app type.

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

A Source object that describes the app repository.

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

A Source object that describes the app repository.

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

A Source object that describes the app repository.

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

A Source object that describes the app repository.

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

A Source object that describes the app repository.

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

A Source object that describes the app repository.

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

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

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

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

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

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

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

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

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

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

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

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

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

An SslConfiguration object with the SSL configuration.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

The stack attributes.

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

When the app was created.

*/ inline const Aws::String& GetCreatedAt() const{ return m_createdAt; } /** *

When the app was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

When the app was created.

*/ inline void SetCreatedAt(const Aws::String& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

When the app was created.

*/ inline void SetCreatedAt(Aws::String&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

When the app was created.

*/ inline void SetCreatedAt(const char* value) { m_createdAtHasBeenSet = true; m_createdAt.assign(value); } /** *

When the app was created.

*/ inline App& WithCreatedAt(const Aws::String& value) { SetCreatedAt(value); return *this;} /** *

When the app was created.

*/ inline App& WithCreatedAt(Aws::String&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

When the app was created.

*/ inline App& WithCreatedAt(const char* value) { SetCreatedAt(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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ inline App& 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ inline App& 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ inline App& 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 variable names, values, and protected flag values * - cannot exceed 20 KB. This limit should accommodate most if not all use cases, * but if you do exceed it, you will cause an exception (API) with an "Environment: * is too large (maximum is 20 KB)" message.

*/ inline App& 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_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::String m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Vector m_environment; bool m_environmentHasBeenSet = false; }; } // namespace Model } // namespace OpsWorks } // namespace Aws