aws-sdk-mediaconnect 1.109.0

AWS SDK for AWS MediaConnect
Documentation
// 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 CreateRouterInputInput {
    /// <p>The name of the router input.</p>
    pub name: ::std::option::Option<::std::string::String>,
    /// <p>The configuration settings for the router input, which can include the protocol, network interface, and other details.</p>
    pub configuration: ::std::option::Option<crate::types::RouterInputConfiguration>,
    /// <p>The maximum bitrate for the router input.</p>
    pub maximum_bitrate: ::std::option::Option<i64>,
    /// <p>Specifies whether the router input can be assigned to outputs in different Regions. REGIONAL (default) - connects only to outputs in same Region. GLOBAL - connects to outputs in any Region.</p>
    pub routing_scope: ::std::option::Option<crate::types::RoutingScope>,
    /// <p>The tier level for the router input.</p>
    pub tier: ::std::option::Option<crate::types::RouterInputTier>,
    /// <p>The Amazon Web Services Region for the router input. Defaults to the current region if not specified.</p>
    pub region_name: ::std::option::Option<::std::string::String>,
    /// <p>The Availability Zone where you want to create the router input. This must be a valid Availability Zone for the region specified by <code>regionName</code>, or the current region if no <code>regionName</code> is provided.</p>
    pub availability_zone: ::std::option::Option<::std::string::String>,
    /// <p>The transit encryption settings for the router input.</p>
    pub transit_encryption: ::std::option::Option<crate::types::RouterInputTransitEncryption>,
    /// <p>The maintenance configuration settings for the router input, including preferred maintenance windows and schedules.</p>
    pub maintenance_configuration: ::std::option::Option<crate::types::MaintenanceConfiguration>,
    /// <p>Key-value pairs that can be used to tag and organize this router input.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// <p>A unique identifier for the request to ensure idempotency.</p>
    pub client_token: ::std::option::Option<::std::string::String>,
}
impl CreateRouterInputInput {
    /// <p>The name of the router input.</p>
    pub fn name(&self) -> ::std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The configuration settings for the router input, which can include the protocol, network interface, and other details.</p>
    pub fn configuration(&self) -> ::std::option::Option<&crate::types::RouterInputConfiguration> {
        self.configuration.as_ref()
    }
    /// <p>The maximum bitrate for the router input.</p>
    pub fn maximum_bitrate(&self) -> ::std::option::Option<i64> {
        self.maximum_bitrate
    }
    /// <p>Specifies whether the router input can be assigned to outputs in different Regions. REGIONAL (default) - connects only to outputs in same Region. GLOBAL - connects to outputs in any Region.</p>
    pub fn routing_scope(&self) -> ::std::option::Option<&crate::types::RoutingScope> {
        self.routing_scope.as_ref()
    }
    /// <p>The tier level for the router input.</p>
    pub fn tier(&self) -> ::std::option::Option<&crate::types::RouterInputTier> {
        self.tier.as_ref()
    }
    /// <p>The Amazon Web Services Region for the router input. Defaults to the current region if not specified.</p>
    pub fn region_name(&self) -> ::std::option::Option<&str> {
        self.region_name.as_deref()
    }
    /// <p>The Availability Zone where you want to create the router input. This must be a valid Availability Zone for the region specified by <code>regionName</code>, or the current region if no <code>regionName</code> is provided.</p>
    pub fn availability_zone(&self) -> ::std::option::Option<&str> {
        self.availability_zone.as_deref()
    }
    /// <p>The transit encryption settings for the router input.</p>
    pub fn transit_encryption(&self) -> ::std::option::Option<&crate::types::RouterInputTransitEncryption> {
        self.transit_encryption.as_ref()
    }
    /// <p>The maintenance configuration settings for the router input, including preferred maintenance windows and schedules.</p>
    pub fn maintenance_configuration(&self) -> ::std::option::Option<&crate::types::MaintenanceConfiguration> {
        self.maintenance_configuration.as_ref()
    }
    /// <p>Key-value pairs that can be used to tag and organize this router input.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// <p>A unique identifier for the request to ensure idempotency.</p>
    pub fn client_token(&self) -> ::std::option::Option<&str> {
        self.client_token.as_deref()
    }
}
impl CreateRouterInputInput {
    /// Creates a new builder-style object to manufacture [`CreateRouterInputInput`](crate::operation::create_router_input::CreateRouterInputInput).
    pub fn builder() -> crate::operation::create_router_input::builders::CreateRouterInputInputBuilder {
        crate::operation::create_router_input::builders::CreateRouterInputInputBuilder::default()
    }
}

/// A builder for [`CreateRouterInputInput`](crate::operation::create_router_input::CreateRouterInputInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateRouterInputInputBuilder {
    pub(crate) name: ::std::option::Option<::std::string::String>,
    pub(crate) configuration: ::std::option::Option<crate::types::RouterInputConfiguration>,
    pub(crate) maximum_bitrate: ::std::option::Option<i64>,
    pub(crate) routing_scope: ::std::option::Option<crate::types::RoutingScope>,
    pub(crate) tier: ::std::option::Option<crate::types::RouterInputTier>,
    pub(crate) region_name: ::std::option::Option<::std::string::String>,
    pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
    pub(crate) transit_encryption: ::std::option::Option<crate::types::RouterInputTransitEncryption>,
    pub(crate) maintenance_configuration: ::std::option::Option<crate::types::MaintenanceConfiguration>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) client_token: ::std::option::Option<::std::string::String>,
}
impl CreateRouterInputInputBuilder {
    /// <p>The name of the router input.</p>
    /// This field is required.
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the router input.</p>
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.name = input;
        self
    }
    /// <p>The name of the router input.</p>
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.name
    }
    /// <p>The configuration settings for the router input, which can include the protocol, network interface, and other details.</p>
    /// This field is required.
    pub fn configuration(mut self, input: crate::types::RouterInputConfiguration) -> Self {
        self.configuration = ::std::option::Option::Some(input);
        self
    }
    /// <p>The configuration settings for the router input, which can include the protocol, network interface, and other details.</p>
    pub fn set_configuration(mut self, input: ::std::option::Option<crate::types::RouterInputConfiguration>) -> Self {
        self.configuration = input;
        self
    }
    /// <p>The configuration settings for the router input, which can include the protocol, network interface, and other details.</p>
    pub fn get_configuration(&self) -> &::std::option::Option<crate::types::RouterInputConfiguration> {
        &self.configuration
    }
    /// <p>The maximum bitrate for the router input.</p>
    /// This field is required.
    pub fn maximum_bitrate(mut self, input: i64) -> Self {
        self.maximum_bitrate = ::std::option::Option::Some(input);
        self
    }
    /// <p>The maximum bitrate for the router input.</p>
    pub fn set_maximum_bitrate(mut self, input: ::std::option::Option<i64>) -> Self {
        self.maximum_bitrate = input;
        self
    }
    /// <p>The maximum bitrate for the router input.</p>
    pub fn get_maximum_bitrate(&self) -> &::std::option::Option<i64> {
        &self.maximum_bitrate
    }
    /// <p>Specifies whether the router input can be assigned to outputs in different Regions. REGIONAL (default) - connects only to outputs in same Region. GLOBAL - connects to outputs in any Region.</p>
    /// This field is required.
    pub fn routing_scope(mut self, input: crate::types::RoutingScope) -> Self {
        self.routing_scope = ::std::option::Option::Some(input);
        self
    }
    /// <p>Specifies whether the router input can be assigned to outputs in different Regions. REGIONAL (default) - connects only to outputs in same Region. GLOBAL - connects to outputs in any Region.</p>
    pub fn set_routing_scope(mut self, input: ::std::option::Option<crate::types::RoutingScope>) -> Self {
        self.routing_scope = input;
        self
    }
    /// <p>Specifies whether the router input can be assigned to outputs in different Regions. REGIONAL (default) - connects only to outputs in same Region. GLOBAL - connects to outputs in any Region.</p>
    pub fn get_routing_scope(&self) -> &::std::option::Option<crate::types::RoutingScope> {
        &self.routing_scope
    }
    /// <p>The tier level for the router input.</p>
    /// This field is required.
    pub fn tier(mut self, input: crate::types::RouterInputTier) -> Self {
        self.tier = ::std::option::Option::Some(input);
        self
    }
    /// <p>The tier level for the router input.</p>
    pub fn set_tier(mut self, input: ::std::option::Option<crate::types::RouterInputTier>) -> Self {
        self.tier = input;
        self
    }
    /// <p>The tier level for the router input.</p>
    pub fn get_tier(&self) -> &::std::option::Option<crate::types::RouterInputTier> {
        &self.tier
    }
    /// <p>The Amazon Web Services Region for the router input. Defaults to the current region if not specified.</p>
    pub fn region_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.region_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Web Services Region for the router input. Defaults to the current region if not specified.</p>
    pub fn set_region_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.region_name = input;
        self
    }
    /// <p>The Amazon Web Services Region for the router input. Defaults to the current region if not specified.</p>
    pub fn get_region_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.region_name
    }
    /// <p>The Availability Zone where you want to create the router input. This must be a valid Availability Zone for the region specified by <code>regionName</code>, or the current region if no <code>regionName</code> is provided.</p>
    pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.availability_zone = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Availability Zone where you want to create the router input. This must be a valid Availability Zone for the region specified by <code>regionName</code>, or the current region if no <code>regionName</code> is provided.</p>
    pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.availability_zone = input;
        self
    }
    /// <p>The Availability Zone where you want to create the router input. This must be a valid Availability Zone for the region specified by <code>regionName</code>, or the current region if no <code>regionName</code> is provided.</p>
    pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
        &self.availability_zone
    }
    /// <p>The transit encryption settings for the router input.</p>
    pub fn transit_encryption(mut self, input: crate::types::RouterInputTransitEncryption) -> Self {
        self.transit_encryption = ::std::option::Option::Some(input);
        self
    }
    /// <p>The transit encryption settings for the router input.</p>
    pub fn set_transit_encryption(mut self, input: ::std::option::Option<crate::types::RouterInputTransitEncryption>) -> Self {
        self.transit_encryption = input;
        self
    }
    /// <p>The transit encryption settings for the router input.</p>
    pub fn get_transit_encryption(&self) -> &::std::option::Option<crate::types::RouterInputTransitEncryption> {
        &self.transit_encryption
    }
    /// <p>The maintenance configuration settings for the router input, including preferred maintenance windows and schedules.</p>
    pub fn maintenance_configuration(mut self, input: crate::types::MaintenanceConfiguration) -> Self {
        self.maintenance_configuration = ::std::option::Option::Some(input);
        self
    }
    /// <p>The maintenance configuration settings for the router input, including preferred maintenance windows and schedules.</p>
    pub fn set_maintenance_configuration(mut self, input: ::std::option::Option<crate::types::MaintenanceConfiguration>) -> Self {
        self.maintenance_configuration = input;
        self
    }
    /// <p>The maintenance configuration settings for the router input, including preferred maintenance windows and schedules.</p>
    pub fn get_maintenance_configuration(&self) -> &::std::option::Option<crate::types::MaintenanceConfiguration> {
        &self.maintenance_configuration
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>Key-value pairs that can be used to tag and organize this router input.</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>Key-value pairs that can be used to tag and organize this router input.</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>Key-value pairs that can be used to tag and organize this router input.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// <p>A unique identifier for the request to ensure idempotency.</p>
    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>A unique identifier for the request to ensure idempotency.</p>
    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.client_token = input;
        self
    }
    /// <p>A unique identifier for the request to ensure idempotency.</p>
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.client_token
    }
    /// Consumes the builder and constructs a [`CreateRouterInputInput`](crate::operation::create_router_input::CreateRouterInputInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::create_router_input::CreateRouterInputInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::create_router_input::CreateRouterInputInput {
            name: self.name,
            configuration: self.configuration,
            maximum_bitrate: self.maximum_bitrate,
            routing_scope: self.routing_scope,
            tier: self.tier,
            region_name: self.region_name,
            availability_zone: self.availability_zone,
            transit_encryption: self.transit_encryption,
            maintenance_configuration: self.maintenance_configuration,
            tags: self.tags,
            client_token: self.client_token,
        })
    }
}