1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`CreateLag`](crate::operation::create_lag::builders::CreateLagFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`number_of_connections(i32)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::number_of_connections) / [`set_number_of_connections(Option<i32>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_number_of_connections):<br>required: **true**<br><p>The number of physical dedicated connections initially provisioned and bundled by the LAG. You can have a maximum of four connections when the port speed is 1G or 10G, or two when the port speed is 100G.</p><br>
    ///   - [`location(impl Into<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::location) / [`set_location(Option<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_location):<br>required: **true**<br><p>The location for the LAG.</p><br>
    ///   - [`connections_bandwidth(impl Into<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::connections_bandwidth) / [`set_connections_bandwidth(Option<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_connections_bandwidth):<br>required: **true**<br><p>The bandwidth of the individual physical dedicated connections bundled by the LAG. The possible values are 1Gbps and 10Gbps.</p><br>
    ///   - [`lag_name(impl Into<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::lag_name) / [`set_lag_name(Option<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_lag_name):<br>required: **true**<br><p>The name of the LAG.</p><br>
    ///   - [`connection_id(impl Into<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::connection_id) / [`set_connection_id(Option<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_connection_id):<br>required: **false**<br><p>The ID of an existing dedicated connection to migrate to the LAG.</p><br>
    ///   - [`tags(Tag)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_tags):<br>required: **false**<br><p>The tags to associate with the LAG.</p><br>
    ///   - [`child_connection_tags(Tag)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::child_connection_tags) / [`set_child_connection_tags(Option<Vec::<Tag>>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_child_connection_tags):<br>required: **false**<br><p>The tags to associate with the automtically created LAGs.</p><br>
    ///   - [`provider_name(impl Into<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::provider_name) / [`set_provider_name(Option<String>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_provider_name):<br>required: **false**<br><p>The name of the service provider associated with the LAG.</p><br>
    ///   - [`request_mac_sec(bool)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::request_mac_sec) / [`set_request_mac_sec(Option<bool>)`](crate::operation::create_lag::builders::CreateLagFluentBuilder::set_request_mac_sec):<br>required: **false**<br><p>Indicates whether the connection will support MAC Security (MACsec).</p><note>  <p>All connections in the LAG must be capable of supporting MAC Security (MACsec). For information about MAC Security (MACsec) prerequisties, see <a href="https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-mac-sec-getting-started.html#mac-sec-prerequisites">MACsec prerequisties</a> in the <i>Direct Connect User Guide</i>.</p> </note><br>
    /// - On success, responds with [`CreateLagOutput`](crate::operation::create_lag::CreateLagOutput) with field(s):
    ///   - [`connections_bandwidth(Option<String>)`](crate::operation::create_lag::CreateLagOutput::connections_bandwidth): <p>The individual bandwidth of the physical connections bundled by the LAG. The possible values are 1Gbps and 10Gbps.</p>
    ///   - [`number_of_connections(i32)`](crate::operation::create_lag::CreateLagOutput::number_of_connections): <p>The number of physical dedicated connections bundled by the LAG, up to a maximum of 10.</p>
    ///   - [`lag_id(Option<String>)`](crate::operation::create_lag::CreateLagOutput::lag_id): <p>The ID of the LAG.</p>
    ///   - [`owner_account(Option<String>)`](crate::operation::create_lag::CreateLagOutput::owner_account): <p>The ID of the Amazon Web Services account that owns the LAG.</p>
    ///   - [`lag_name(Option<String>)`](crate::operation::create_lag::CreateLagOutput::lag_name): <p>The name of the LAG.</p>
    ///   - [`lag_state(Option<LagState>)`](crate::operation::create_lag::CreateLagOutput::lag_state): <p>The state of the LAG. The following are the possible values:</p> <ul>  <li>   <p><code>requested</code>: The initial state of a LAG. The LAG stays in the requested state until the Letter of Authorization (LOA) is available.</p></li>  <li>   <p><code>pending</code>: The LAG has been approved and is being initialized.</p></li>  <li>   <p><code>available</code>: The network link is established and the LAG is ready for use.</p></li>  <li>   <p><code>down</code>: The network link is down.</p></li>  <li>   <p><code>deleting</code>: The LAG is being deleted.</p></li>  <li>   <p><code>deleted</code>: The LAG is deleted.</p></li>  <li>   <p><code>unknown</code>: The state of the LAG is not available.</p></li> </ul>
    ///   - [`location(Option<String>)`](crate::operation::create_lag::CreateLagOutput::location): <p>The location of the LAG.</p>
    ///   - [`region(Option<String>)`](crate::operation::create_lag::CreateLagOutput::region): <p>The Amazon Web Services Region where the connection is located.</p>
    ///   - [`minimum_links(i32)`](crate::operation::create_lag::CreateLagOutput::minimum_links): <p>The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.</p>
    ///   - [`aws_device(Option<String>)`](crate::operation::create_lag::CreateLagOutput::aws_device): <p>The Direct Connect endpoint that hosts the LAG.</p>
    ///   - [`aws_device_v2(Option<String>)`](crate::operation::create_lag::CreateLagOutput::aws_device_v2): <p>The Direct Connect endpoint that hosts the LAG.</p>
    ///   - [`aws_logical_device_id(Option<String>)`](crate::operation::create_lag::CreateLagOutput::aws_logical_device_id): <p>The Direct Connect endpoint that terminates the logical connection. This device might be different than the device that terminates the physical connection.</p>
    ///   - [`connections(Option<Vec::<Connection>>)`](crate::operation::create_lag::CreateLagOutput::connections): <p>The connections bundled by the LAG.</p>
    ///   - [`allows_hosted_connections(bool)`](crate::operation::create_lag::CreateLagOutput::allows_hosted_connections): <p>Indicates whether the LAG can host other connections.</p>
    ///   - [`jumbo_frame_capable(Option<bool>)`](crate::operation::create_lag::CreateLagOutput::jumbo_frame_capable): <p>Indicates whether jumbo frames are supported.</p>
    ///   - [`has_logical_redundancy(Option<HasLogicalRedundancy>)`](crate::operation::create_lag::CreateLagOutput::has_logical_redundancy): <p>Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).</p>
    ///   - [`tags(Option<Vec::<Tag>>)`](crate::operation::create_lag::CreateLagOutput::tags): <p>The tags associated with the LAG.</p>
    ///   - [`provider_name(Option<String>)`](crate::operation::create_lag::CreateLagOutput::provider_name): <p>The name of the service provider associated with the LAG.</p>
    ///   - [`mac_sec_capable(Option<bool>)`](crate::operation::create_lag::CreateLagOutput::mac_sec_capable): <p>Indicates whether the LAG supports MAC Security (MACsec).</p>
    ///   - [`encryption_mode(Option<String>)`](crate::operation::create_lag::CreateLagOutput::encryption_mode): <p>The LAG MAC Security (MACsec) encryption mode.</p> <p>The valid values are <code>no_encrypt</code>, <code>should_encrypt</code>, and <code>must_encrypt</code>.</p>
    ///   - [`mac_sec_keys(Option<Vec::<MacSecKey>>)`](crate::operation::create_lag::CreateLagOutput::mac_sec_keys): <p>The MAC Security (MACsec) security keys associated with the LAG.</p>
    /// - On failure, responds with [`SdkError<CreateLagError>`](crate::operation::create_lag::CreateLagError)
    pub fn create_lag(&self) -> crate::operation::create_lag::builders::CreateLagFluentBuilder {
        crate::operation::create_lag::builders::CreateLagFluentBuilder::new(self.handle.clone())
    }
}