// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateResponderGatewayInput {
/// <p>The unique identifier of the Virtual Private Cloud (VPC).</p>
pub vpc_id: ::std::option::Option<::std::string::String>,
/// <p>Unique identifiers of the subnets. A service quota for your account sets the number of Availability Zones that your subnets can span. By default, this quota is one Availability Zone. To span more Availability Zones, request a quota increase.</p>
pub subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
/// <p>The unique identifiers of the security groups.</p>
pub security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
/// <p>The domain name for the responder gateway.</p>
pub domain_name: ::std::option::Option<::std::string::String>,
/// <p>The networking port to use.</p>
pub port: ::std::option::Option<i32>,
/// <p>The networking protocol to use.</p>
pub protocol: ::std::option::Option<crate::types::Protocol>,
/// <p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>
pub listener_config: ::std::option::Option<crate::types::ListenerConfig>,
/// <p>The configuration of the trust store.</p>
pub trust_store_configuration: ::std::option::Option<crate::types::TrustStoreConfiguration>,
/// <p>The configuration for the managed endpoint.</p>
pub managed_endpoint_configuration: ::std::option::Option<crate::types::ManagedEndpointConfiguration>,
/// <p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
/// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
/// <p>If you retry the operation with the same <code>clientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
pub client_token: ::std::option::Option<::std::string::String>,
/// <p>An optional description for the responder gateway.</p>
pub description: ::std::option::Option<::std::string::String>,
/// <p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>
pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
/// <p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>
pub gateway_type: ::std::option::Option<crate::types::GatewayType>,
/// <p>The client routing policy of the gateway. This policy controls which Availability Zones RTB Fabric uses to reach the gateway for the requester gateways that send traffic to it. Valid values are the following:</p>
/// <ul>
/// <li>
/// <p><code>AVAILABILITY_ZONE_AFFINITY</code>: RTB Fabric routes each requester's traffic to gateway capacity in the requester's own Availability Zone when the gateway has capacity available there. Otherwise, RTB Fabric routes the traffic to gateway capacity in the other Availability Zones of the gateway.</p></li>
/// <li>
/// <p><code>ANY_AVAILABILITY_ZONE</code>: RTB Fabric routes each requester's traffic to gateway capacity in every Availability Zone that the subnets of the gateway span. The Availability Zone that the requester is in does not change this.</p></li>
/// </ul>
/// <p>If you don't specify a value, RTB Fabric uses <code>AVAILABILITY_ZONE_AFFINITY</code>. To get the behavior of <code>ANY_AVAILABILITY_ZONE</code>, create the gateway with subnets in more than one Availability Zone. RTB Fabric does not support partial Availability Zone affinity, so <code>PARTIAL_AVAILABILITY_ZONE_AFFINITY</code> is not a valid value. For more information, see <a href="https://docs.aws.amazon.com/rtb-fabric/latest/userguide/working-with-responder-gateways.html#configuring-availability-zone-affinity">Configuring Availability Zone affinity</a> in the <i>Amazon Web Services RTB Fabric User Guide</i>.</p>
pub client_routing_policy: ::std::option::Option<crate::types::ClientRoutingPolicy>,
}
impl CreateResponderGatewayInput {
/// <p>The unique identifier of the Virtual Private Cloud (VPC).</p>
pub fn vpc_id(&self) -> ::std::option::Option<&str> {
self.vpc_id.as_deref()
}
/// <p>Unique identifiers of the subnets. A service quota for your account sets the number of Availability Zones that your subnets can span. By default, this quota is one Availability Zone. To span more Availability Zones, request a quota increase.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.subnet_ids.is_none()`.
pub fn subnet_ids(&self) -> &[::std::string::String] {
self.subnet_ids.as_deref().unwrap_or_default()
}
/// <p>The unique identifiers of the security groups.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.security_group_ids.is_none()`.
pub fn security_group_ids(&self) -> &[::std::string::String] {
self.security_group_ids.as_deref().unwrap_or_default()
}
/// <p>The domain name for the responder gateway.</p>
pub fn domain_name(&self) -> ::std::option::Option<&str> {
self.domain_name.as_deref()
}
/// <p>The networking port to use.</p>
pub fn port(&self) -> ::std::option::Option<i32> {
self.port
}
/// <p>The networking protocol to use.</p>
pub fn protocol(&self) -> ::std::option::Option<&crate::types::Protocol> {
self.protocol.as_ref()
}
/// <p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>
pub fn listener_config(&self) -> ::std::option::Option<&crate::types::ListenerConfig> {
self.listener_config.as_ref()
}
/// <p>The configuration of the trust store.</p>
pub fn trust_store_configuration(&self) -> ::std::option::Option<&crate::types::TrustStoreConfiguration> {
self.trust_store_configuration.as_ref()
}
/// <p>The configuration for the managed endpoint.</p>
pub fn managed_endpoint_configuration(&self) -> ::std::option::Option<&crate::types::ManagedEndpointConfiguration> {
self.managed_endpoint_configuration.as_ref()
}
/// <p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
/// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
/// <p>If you retry the operation with the same <code>clientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
pub fn client_token(&self) -> ::std::option::Option<&str> {
self.client_token.as_deref()
}
/// <p>An optional description for the responder gateway.</p>
pub fn description(&self) -> ::std::option::Option<&str> {
self.description.as_deref()
}
/// <p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>
pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.tags.as_ref()
}
/// <p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>
pub fn gateway_type(&self) -> ::std::option::Option<&crate::types::GatewayType> {
self.gateway_type.as_ref()
}
/// <p>The client routing policy of the gateway. This policy controls which Availability Zones RTB Fabric uses to reach the gateway for the requester gateways that send traffic to it. Valid values are the following:</p>
/// <ul>
/// <li>
/// <p><code>AVAILABILITY_ZONE_AFFINITY</code>: RTB Fabric routes each requester's traffic to gateway capacity in the requester's own Availability Zone when the gateway has capacity available there. Otherwise, RTB Fabric routes the traffic to gateway capacity in the other Availability Zones of the gateway.</p></li>
/// <li>
/// <p><code>ANY_AVAILABILITY_ZONE</code>: RTB Fabric routes each requester's traffic to gateway capacity in every Availability Zone that the subnets of the gateway span. The Availability Zone that the requester is in does not change this.</p></li>
/// </ul>
/// <p>If you don't specify a value, RTB Fabric uses <code>AVAILABILITY_ZONE_AFFINITY</code>. To get the behavior of <code>ANY_AVAILABILITY_ZONE</code>, create the gateway with subnets in more than one Availability Zone. RTB Fabric does not support partial Availability Zone affinity, so <code>PARTIAL_AVAILABILITY_ZONE_AFFINITY</code> is not a valid value. For more information, see <a href="https://docs.aws.amazon.com/rtb-fabric/latest/userguide/working-with-responder-gateways.html#configuring-availability-zone-affinity">Configuring Availability Zone affinity</a> in the <i>Amazon Web Services RTB Fabric User Guide</i>.</p>
pub fn client_routing_policy(&self) -> ::std::option::Option<&crate::types::ClientRoutingPolicy> {
self.client_routing_policy.as_ref()
}
}
impl CreateResponderGatewayInput {
/// Creates a new builder-style object to manufacture [`CreateResponderGatewayInput`](crate::operation::create_responder_gateway::CreateResponderGatewayInput).
pub fn builder() -> crate::operation::create_responder_gateway::builders::CreateResponderGatewayInputBuilder {
crate::operation::create_responder_gateway::builders::CreateResponderGatewayInputBuilder::default()
}
}
/// A builder for [`CreateResponderGatewayInput`](crate::operation::create_responder_gateway::CreateResponderGatewayInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateResponderGatewayInputBuilder {
pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
pub(crate) subnet_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) domain_name: ::std::option::Option<::std::string::String>,
pub(crate) port: ::std::option::Option<i32>,
pub(crate) protocol: ::std::option::Option<crate::types::Protocol>,
pub(crate) listener_config: ::std::option::Option<crate::types::ListenerConfig>,
pub(crate) trust_store_configuration: ::std::option::Option<crate::types::TrustStoreConfiguration>,
pub(crate) managed_endpoint_configuration: ::std::option::Option<crate::types::ManagedEndpointConfiguration>,
pub(crate) client_token: ::std::option::Option<::std::string::String>,
pub(crate) description: ::std::option::Option<::std::string::String>,
pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) gateway_type: ::std::option::Option<crate::types::GatewayType>,
pub(crate) client_routing_policy: ::std::option::Option<crate::types::ClientRoutingPolicy>,
}
impl CreateResponderGatewayInputBuilder {
/// <p>The unique identifier of the Virtual Private Cloud (VPC).</p>
/// This field is required.
pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.vpc_id = ::std::option::Option::Some(input.into());
self
}
/// <p>The unique identifier of the Virtual Private Cloud (VPC).</p>
pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.vpc_id = input;
self
}
/// <p>The unique identifier of the Virtual Private Cloud (VPC).</p>
pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
&self.vpc_id
}
/// Appends an item to `subnet_ids`.
///
/// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
///
/// <p>Unique identifiers of the subnets. A service quota for your account sets the number of Availability Zones that your subnets can span. By default, this quota is one Availability Zone. To span more Availability Zones, request a quota increase.</p>
pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.subnet_ids.unwrap_or_default();
v.push(input.into());
self.subnet_ids = ::std::option::Option::Some(v);
self
}
/// <p>Unique identifiers of the subnets. A service quota for your account sets the number of Availability Zones that your subnets can span. By default, this quota is one Availability Zone. To span more Availability Zones, request a quota increase.</p>
pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.subnet_ids = input;
self
}
/// <p>Unique identifiers of the subnets. A service quota for your account sets the number of Availability Zones that your subnets can span. By default, this quota is one Availability Zone. To span more Availability Zones, request a quota increase.</p>
pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.subnet_ids
}
/// Appends an item to `security_group_ids`.
///
/// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
///
/// <p>The unique identifiers of the security groups.</p>
pub fn security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.security_group_ids.unwrap_or_default();
v.push(input.into());
self.security_group_ids = ::std::option::Option::Some(v);
self
}
/// <p>The unique identifiers of the security groups.</p>
pub fn set_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.security_group_ids = input;
self
}
/// <p>The unique identifiers of the security groups.</p>
pub fn get_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.security_group_ids
}
/// <p>The domain name for the responder gateway.</p>
pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.domain_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The domain name for the responder gateway.</p>
pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.domain_name = input;
self
}
/// <p>The domain name for the responder gateway.</p>
pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
&self.domain_name
}
/// <p>The networking port to use.</p>
/// This field is required.
pub fn port(mut self, input: i32) -> Self {
self.port = ::std::option::Option::Some(input);
self
}
/// <p>The networking port to use.</p>
pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
self.port = input;
self
}
/// <p>The networking port to use.</p>
pub fn get_port(&self) -> &::std::option::Option<i32> {
&self.port
}
/// <p>The networking protocol to use.</p>
/// This field is required.
pub fn protocol(mut self, input: crate::types::Protocol) -> Self {
self.protocol = ::std::option::Option::Some(input);
self
}
/// <p>The networking protocol to use.</p>
pub fn set_protocol(mut self, input: ::std::option::Option<crate::types::Protocol>) -> Self {
self.protocol = input;
self
}
/// <p>The networking protocol to use.</p>
pub fn get_protocol(&self) -> &::std::option::Option<crate::types::Protocol> {
&self.protocol
}
/// <p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>
pub fn listener_config(mut self, input: crate::types::ListenerConfig) -> Self {
self.listener_config = ::std::option::Option::Some(input);
self
}
/// <p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>
pub fn set_listener_config(mut self, input: ::std::option::Option<crate::types::ListenerConfig>) -> Self {
self.listener_config = input;
self
}
/// <p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>
pub fn get_listener_config(&self) -> &::std::option::Option<crate::types::ListenerConfig> {
&self.listener_config
}
/// <p>The configuration of the trust store.</p>
pub fn trust_store_configuration(mut self, input: crate::types::TrustStoreConfiguration) -> Self {
self.trust_store_configuration = ::std::option::Option::Some(input);
self
}
/// <p>The configuration of the trust store.</p>
pub fn set_trust_store_configuration(mut self, input: ::std::option::Option<crate::types::TrustStoreConfiguration>) -> Self {
self.trust_store_configuration = input;
self
}
/// <p>The configuration of the trust store.</p>
pub fn get_trust_store_configuration(&self) -> &::std::option::Option<crate::types::TrustStoreConfiguration> {
&self.trust_store_configuration
}
/// <p>The configuration for the managed endpoint.</p>
pub fn managed_endpoint_configuration(mut self, input: crate::types::ManagedEndpointConfiguration) -> Self {
self.managed_endpoint_configuration = ::std::option::Option::Some(input);
self
}
/// <p>The configuration for the managed endpoint.</p>
pub fn set_managed_endpoint_configuration(mut self, input: ::std::option::Option<crate::types::ManagedEndpointConfiguration>) -> Self {
self.managed_endpoint_configuration = input;
self
}
/// <p>The configuration for the managed endpoint.</p>
pub fn get_managed_endpoint_configuration(&self) -> &::std::option::Option<crate::types::ManagedEndpointConfiguration> {
&self.managed_endpoint_configuration
}
/// <p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
/// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
/// <p>If you retry the operation with the same <code>clientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
/// This field is required.
pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.client_token = ::std::option::Option::Some(input.into());
self
}
/// <p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
/// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
/// <p>If you retry the operation with the same <code>clientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.client_token = input;
self
}
/// <p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href="https://wikipedia.org/wiki/Universally_unique_identifier">UUID type of value</a>.</p>
/// <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p>
/// <p>If you retry the operation with the same <code>clientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>
pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
&self.client_token
}
/// <p>An optional description for the responder gateway.</p>
pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.description = ::std::option::Option::Some(input.into());
self
}
/// <p>An optional description for the responder gateway.</p>
pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.description = input;
self
}
/// <p>An optional description for the responder gateway.</p>
pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
&self.description
}
/// Adds a key-value pair to `tags`.
///
/// To override the contents of this collection use [`set_tags`](Self::set_tags).
///
/// <p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>
pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.tags = ::std::option::Option::Some(hash_map);
self
}
/// <p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>
pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.tags = input;
self
}
/// <p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>
pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.tags
}
/// <p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>
pub fn gateway_type(mut self, input: crate::types::GatewayType) -> Self {
self.gateway_type = ::std::option::Option::Some(input);
self
}
/// <p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>
pub fn set_gateway_type(mut self, input: ::std::option::Option<crate::types::GatewayType>) -> Self {
self.gateway_type = input;
self
}
/// <p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>
pub fn get_gateway_type(&self) -> &::std::option::Option<crate::types::GatewayType> {
&self.gateway_type
}
/// <p>The client routing policy of the gateway. This policy controls which Availability Zones RTB Fabric uses to reach the gateway for the requester gateways that send traffic to it. Valid values are the following:</p>
/// <ul>
/// <li>
/// <p><code>AVAILABILITY_ZONE_AFFINITY</code>: RTB Fabric routes each requester's traffic to gateway capacity in the requester's own Availability Zone when the gateway has capacity available there. Otherwise, RTB Fabric routes the traffic to gateway capacity in the other Availability Zones of the gateway.</p></li>
/// <li>
/// <p><code>ANY_AVAILABILITY_ZONE</code>: RTB Fabric routes each requester's traffic to gateway capacity in every Availability Zone that the subnets of the gateway span. The Availability Zone that the requester is in does not change this.</p></li>
/// </ul>
/// <p>If you don't specify a value, RTB Fabric uses <code>AVAILABILITY_ZONE_AFFINITY</code>. To get the behavior of <code>ANY_AVAILABILITY_ZONE</code>, create the gateway with subnets in more than one Availability Zone. RTB Fabric does not support partial Availability Zone affinity, so <code>PARTIAL_AVAILABILITY_ZONE_AFFINITY</code> is not a valid value. For more information, see <a href="https://docs.aws.amazon.com/rtb-fabric/latest/userguide/working-with-responder-gateways.html#configuring-availability-zone-affinity">Configuring Availability Zone affinity</a> in the <i>Amazon Web Services RTB Fabric User Guide</i>.</p>
pub fn client_routing_policy(mut self, input: crate::types::ClientRoutingPolicy) -> Self {
self.client_routing_policy = ::std::option::Option::Some(input);
self
}
/// <p>The client routing policy of the gateway. This policy controls which Availability Zones RTB Fabric uses to reach the gateway for the requester gateways that send traffic to it. Valid values are the following:</p>
/// <ul>
/// <li>
/// <p><code>AVAILABILITY_ZONE_AFFINITY</code>: RTB Fabric routes each requester's traffic to gateway capacity in the requester's own Availability Zone when the gateway has capacity available there. Otherwise, RTB Fabric routes the traffic to gateway capacity in the other Availability Zones of the gateway.</p></li>
/// <li>
/// <p><code>ANY_AVAILABILITY_ZONE</code>: RTB Fabric routes each requester's traffic to gateway capacity in every Availability Zone that the subnets of the gateway span. The Availability Zone that the requester is in does not change this.</p></li>
/// </ul>
/// <p>If you don't specify a value, RTB Fabric uses <code>AVAILABILITY_ZONE_AFFINITY</code>. To get the behavior of <code>ANY_AVAILABILITY_ZONE</code>, create the gateway with subnets in more than one Availability Zone. RTB Fabric does not support partial Availability Zone affinity, so <code>PARTIAL_AVAILABILITY_ZONE_AFFINITY</code> is not a valid value. For more information, see <a href="https://docs.aws.amazon.com/rtb-fabric/latest/userguide/working-with-responder-gateways.html#configuring-availability-zone-affinity">Configuring Availability Zone affinity</a> in the <i>Amazon Web Services RTB Fabric User Guide</i>.</p>
pub fn set_client_routing_policy(mut self, input: ::std::option::Option<crate::types::ClientRoutingPolicy>) -> Self {
self.client_routing_policy = input;
self
}
/// <p>The client routing policy of the gateway. This policy controls which Availability Zones RTB Fabric uses to reach the gateway for the requester gateways that send traffic to it. Valid values are the following:</p>
/// <ul>
/// <li>
/// <p><code>AVAILABILITY_ZONE_AFFINITY</code>: RTB Fabric routes each requester's traffic to gateway capacity in the requester's own Availability Zone when the gateway has capacity available there. Otherwise, RTB Fabric routes the traffic to gateway capacity in the other Availability Zones of the gateway.</p></li>
/// <li>
/// <p><code>ANY_AVAILABILITY_ZONE</code>: RTB Fabric routes each requester's traffic to gateway capacity in every Availability Zone that the subnets of the gateway span. The Availability Zone that the requester is in does not change this.</p></li>
/// </ul>
/// <p>If you don't specify a value, RTB Fabric uses <code>AVAILABILITY_ZONE_AFFINITY</code>. To get the behavior of <code>ANY_AVAILABILITY_ZONE</code>, create the gateway with subnets in more than one Availability Zone. RTB Fabric does not support partial Availability Zone affinity, so <code>PARTIAL_AVAILABILITY_ZONE_AFFINITY</code> is not a valid value. For more information, see <a href="https://docs.aws.amazon.com/rtb-fabric/latest/userguide/working-with-responder-gateways.html#configuring-availability-zone-affinity">Configuring Availability Zone affinity</a> in the <i>Amazon Web Services RTB Fabric User Guide</i>.</p>
pub fn get_client_routing_policy(&self) -> &::std::option::Option<crate::types::ClientRoutingPolicy> {
&self.client_routing_policy
}
/// Consumes the builder and constructs a [`CreateResponderGatewayInput`](crate::operation::create_responder_gateway::CreateResponderGatewayInput).
pub fn build(
self,
) -> ::std::result::Result<
crate::operation::create_responder_gateway::CreateResponderGatewayInput,
::aws_smithy_types::error::operation::BuildError,
> {
::std::result::Result::Ok(crate::operation::create_responder_gateway::CreateResponderGatewayInput {
vpc_id: self.vpc_id,
subnet_ids: self.subnet_ids,
security_group_ids: self.security_group_ids,
domain_name: self.domain_name,
port: self.port,
protocol: self.protocol,
listener_config: self.listener_config,
trust_store_configuration: self.trust_store_configuration,
managed_endpoint_configuration: self.managed_endpoint_configuration,
client_token: self.client_token,
description: self.description,
tags: self.tags,
gateway_type: self.gateway_type,
client_routing_policy: self.client_routing_policy,
})
}
}