/** * 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 namespace Aws { namespace IoT { namespace Model { /** */ class CreateDomainConfigurationRequest : public IoTRequest { public: AWS_IOT_API CreateDomainConfigurationRequest(); // 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 "CreateDomainConfiguration"; } AWS_IOT_API Aws::String SerializePayload() const override; /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline const Aws::String& GetDomainConfigurationName() const{ return m_domainConfigurationName; } /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline bool DomainConfigurationNameHasBeenSet() const { return m_domainConfigurationNameHasBeenSet; } /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline void SetDomainConfigurationName(const Aws::String& value) { m_domainConfigurationNameHasBeenSet = true; m_domainConfigurationName = value; } /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline void SetDomainConfigurationName(Aws::String&& value) { m_domainConfigurationNameHasBeenSet = true; m_domainConfigurationName = std::move(value); } /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline void SetDomainConfigurationName(const char* value) { m_domainConfigurationNameHasBeenSet = true; m_domainConfigurationName.assign(value); } /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline CreateDomainConfigurationRequest& WithDomainConfigurationName(const Aws::String& value) { SetDomainConfigurationName(value); return *this;} /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline CreateDomainConfigurationRequest& WithDomainConfigurationName(Aws::String&& value) { SetDomainConfigurationName(std::move(value)); return *this;} /** *

The name of the domain configuration. This value must be unique to a * region.

*/ inline CreateDomainConfigurationRequest& WithDomainConfigurationName(const char* value) { SetDomainConfigurationName(value); return *this;} /** *

The name of the domain.

*/ inline const Aws::String& GetDomainName() const{ return m_domainName; } /** *

The name of the domain.

*/ inline bool DomainNameHasBeenSet() const { return m_domainNameHasBeenSet; } /** *

The name of the domain.

*/ inline void SetDomainName(const Aws::String& value) { m_domainNameHasBeenSet = true; m_domainName = value; } /** *

The name of the domain.

*/ inline void SetDomainName(Aws::String&& value) { m_domainNameHasBeenSet = true; m_domainName = std::move(value); } /** *

The name of the domain.

*/ inline void SetDomainName(const char* value) { m_domainNameHasBeenSet = true; m_domainName.assign(value); } /** *

The name of the domain.

*/ inline CreateDomainConfigurationRequest& WithDomainName(const Aws::String& value) { SetDomainName(value); return *this;} /** *

The name of the domain.

*/ inline CreateDomainConfigurationRequest& WithDomainName(Aws::String&& value) { SetDomainName(std::move(value)); return *this;} /** *

The name of the domain.

*/ inline CreateDomainConfigurationRequest& WithDomainName(const char* value) { SetDomainName(value); return *this;} /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline const Aws::Vector& GetServerCertificateArns() const{ return m_serverCertificateArns; } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline bool ServerCertificateArnsHasBeenSet() const { return m_serverCertificateArnsHasBeenSet; } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline void SetServerCertificateArns(const Aws::Vector& value) { m_serverCertificateArnsHasBeenSet = true; m_serverCertificateArns = value; } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline void SetServerCertificateArns(Aws::Vector&& value) { m_serverCertificateArnsHasBeenSet = true; m_serverCertificateArns = std::move(value); } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& WithServerCertificateArns(const Aws::Vector& value) { SetServerCertificateArns(value); return *this;} /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& WithServerCertificateArns(Aws::Vector&& value) { SetServerCertificateArns(std::move(value)); return *this;} /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& AddServerCertificateArns(const Aws::String& value) { m_serverCertificateArnsHasBeenSet = true; m_serverCertificateArns.push_back(value); return *this; } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& AddServerCertificateArns(Aws::String&& value) { m_serverCertificateArnsHasBeenSet = true; m_serverCertificateArns.push_back(std::move(value)); return *this; } /** *

The ARNs of the certificates that IoT passes to the device during the TLS * handshake. Currently you can specify only one certificate ARN. This value is not * required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& AddServerCertificateArns(const char* value) { m_serverCertificateArnsHasBeenSet = true; m_serverCertificateArns.push_back(value); return *this; } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline const Aws::String& GetValidationCertificateArn() const{ return m_validationCertificateArn; } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline bool ValidationCertificateArnHasBeenSet() const { return m_validationCertificateArnHasBeenSet; } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline void SetValidationCertificateArn(const Aws::String& value) { m_validationCertificateArnHasBeenSet = true; m_validationCertificateArn = value; } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline void SetValidationCertificateArn(Aws::String&& value) { m_validationCertificateArnHasBeenSet = true; m_validationCertificateArn = std::move(value); } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline void SetValidationCertificateArn(const char* value) { m_validationCertificateArnHasBeenSet = true; m_validationCertificateArn.assign(value); } /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& WithValidationCertificateArn(const Aws::String& value) { SetValidationCertificateArn(value); return *this;} /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& WithValidationCertificateArn(Aws::String&& value) { SetValidationCertificateArn(std::move(value)); return *this;} /** *

The certificate used to validate the server certificate and prove domain name * ownership. This certificate must be signed by a public certificate authority. * This value is not required for Amazon Web Services-managed domains.

*/ inline CreateDomainConfigurationRequest& WithValidationCertificateArn(const char* value) { SetValidationCertificateArn(value); return *this;} /** *

An object that specifies the authorization service for a domain.

*/ inline const AuthorizerConfig& GetAuthorizerConfig() const{ return m_authorizerConfig; } /** *

An object that specifies the authorization service for a domain.

*/ inline bool AuthorizerConfigHasBeenSet() const { return m_authorizerConfigHasBeenSet; } /** *

An object that specifies the authorization service for a domain.

*/ inline void SetAuthorizerConfig(const AuthorizerConfig& value) { m_authorizerConfigHasBeenSet = true; m_authorizerConfig = value; } /** *

An object that specifies the authorization service for a domain.

*/ inline void SetAuthorizerConfig(AuthorizerConfig&& value) { m_authorizerConfigHasBeenSet = true; m_authorizerConfig = std::move(value); } /** *

An object that specifies the authorization service for a domain.

*/ inline CreateDomainConfigurationRequest& WithAuthorizerConfig(const AuthorizerConfig& value) { SetAuthorizerConfig(value); return *this;} /** *

An object that specifies the authorization service for a domain.

*/ inline CreateDomainConfigurationRequest& WithAuthorizerConfig(AuthorizerConfig&& value) { SetAuthorizerConfig(std::move(value)); return *this;} /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline const ServiceType& GetServiceType() const{ return m_serviceType; } /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline bool ServiceTypeHasBeenSet() const { return m_serviceTypeHasBeenSet; } /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline void SetServiceType(const ServiceType& value) { m_serviceTypeHasBeenSet = true; m_serviceType = value; } /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline void SetServiceType(ServiceType&& value) { m_serviceTypeHasBeenSet = true; m_serviceType = std::move(value); } /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline CreateDomainConfigurationRequest& WithServiceType(const ServiceType& value) { SetServiceType(value); return *this;} /** *

The type of service delivered by the endpoint.

Amazon Web * Services IoT Core currently supports only the DATA service * type.

*/ inline CreateDomainConfigurationRequest& WithServiceType(ServiceType&& value) { SetServiceType(std::move(value)); return *this;} /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateDomainConfigurationRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateDomainConfigurationRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateDomainConfigurationRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Metadata which can be used to manage the domain configuration.

*

For URI Request parameters use format: ...key1=value1&key2=value2...

*

For the CLI command-line parameter use format: &&tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateDomainConfigurationRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

An object that specifies the TLS configuration for a domain.

*/ inline const TlsConfig& GetTlsConfig() const{ return m_tlsConfig; } /** *

An object that specifies the TLS configuration for a domain.

*/ inline bool TlsConfigHasBeenSet() const { return m_tlsConfigHasBeenSet; } /** *

An object that specifies the TLS configuration for a domain.

*/ inline void SetTlsConfig(const TlsConfig& value) { m_tlsConfigHasBeenSet = true; m_tlsConfig = value; } /** *

An object that specifies the TLS configuration for a domain.

*/ inline void SetTlsConfig(TlsConfig&& value) { m_tlsConfigHasBeenSet = true; m_tlsConfig = std::move(value); } /** *

An object that specifies the TLS configuration for a domain.

*/ inline CreateDomainConfigurationRequest& WithTlsConfig(const TlsConfig& value) { SetTlsConfig(value); return *this;} /** *

An object that specifies the TLS configuration for a domain.

*/ inline CreateDomainConfigurationRequest& WithTlsConfig(TlsConfig&& value) { SetTlsConfig(std::move(value)); return *this;} private: Aws::String m_domainConfigurationName; bool m_domainConfigurationNameHasBeenSet = false; Aws::String m_domainName; bool m_domainNameHasBeenSet = false; Aws::Vector m_serverCertificateArns; bool m_serverCertificateArnsHasBeenSet = false; Aws::String m_validationCertificateArn; bool m_validationCertificateArnHasBeenSet = false; AuthorizerConfig m_authorizerConfig; bool m_authorizerConfigHasBeenSet = false; ServiceType m_serviceType; bool m_serviceTypeHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; TlsConfig m_tlsConfig; bool m_tlsConfigHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws