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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
    /// Constructs a fluent builder for the [`AuthorizeSecurityGroupIngress`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder) operation.
    ///
    /// - The fluent builder is configurable:
    ///   - [`cidr_ip(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::cidr_ip) / [`set_cidr_ip(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_cidr_ip):<br>required: **false**<br><p>The IPv4 address range, in CIDR format.</p> <p>To specify an IPv6 address range, use IP permissions instead.</p> <p>To specify multiple rules and descriptions for the rules, use IP permissions instead.</p><br>
    ///   - [`from_port(i32)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::from_port) / [`set_from_port(Option<i32>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_from_port):<br>required: **false**<br><p>If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP, this is the ICMP type or -1 (all ICMP types).</p> <p>To specify multiple rules and descriptions for the rules, use IP permissions instead.</p><br>
    ///   - [`group_id(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::group_id) / [`set_group_id(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_group_id):<br>required: **false**<br><p>The ID of the security group.</p><br>
    ///   - [`group_name(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::group_name) / [`set_group_name(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_group_name):<br>required: **false**<br><p>\[Default VPC\] The name of the security group. For security groups for a default VPC you can specify either the ID or the name of the security group. For security groups for a nondefault VPC, you must specify the ID of the security group.</p><br>
    ///   - [`ip_permissions(IpPermission)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::ip_permissions) / [`set_ip_permissions(Option<Vec::<IpPermission>>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_ip_permissions):<br>required: **false**<br><p>The permissions for the security group rules.</p><br>
    ///   - [`ip_protocol(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::ip_protocol) / [`set_ip_protocol(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_ip_protocol):<br>required: **false**<br><p>The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>) or number (see <a href="http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">Protocol Numbers</a>). To specify all protocols, use <code>-1</code>.</p> <p>To specify <code>icmpv6</code>, use IP permissions instead.</p> <p>If you specify a protocol other than one of the supported values, traffic is allowed on all ports, regardless of any ports that you specify.</p> <p>To specify multiple rules and descriptions for the rules, use IP permissions instead.</p><br>
    ///   - [`source_security_group_name(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::source_security_group_name) / [`set_source_security_group_name(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_source_security_group_name):<br>required: **false**<br><p>\[Default VPC\] The name of the source security group.</p> <p>The rule grants full ICMP, UDP, and TCP access. To create a rule with a specific protocol and port range, specify a set of IP permissions instead.</p><br>
    ///   - [`source_security_group_owner_id(impl Into<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::source_security_group_owner_id) / [`set_source_security_group_owner_id(Option<String>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_source_security_group_owner_id):<br>required: **false**<br><p>The Amazon Web Services account ID for the source security group, if the source security group is in a different account.</p> <p>The rule grants full ICMP, UDP, and TCP access. To create a rule with a specific protocol and port range, use IP permissions instead.</p><br>
    ///   - [`to_port(i32)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::to_port) / [`set_to_port(Option<i32>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_to_port):<br>required: **false**<br><p>If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes).</p> <p>To specify multiple rules and descriptions for the rules, use IP permissions instead.</p><br>
    ///   - [`dry_run(bool)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::dry_run) / [`set_dry_run(Option<bool>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_dry_run):<br>required: **false**<br><p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p><br>
    ///   - [`tag_specifications(TagSpecification)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::tag_specifications) / [`set_tag_specifications(Option<Vec::<TagSpecification>>)`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::set_tag_specifications):<br>required: **false**<br><p>The tags applied to the security group rule.</p><br>
    /// - On success, responds with [`AuthorizeSecurityGroupIngressOutput`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressOutput) with field(s):
    ///   - [`r#return(Option<bool>)`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressOutput::return): <p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>
    ///   - [`security_group_rules(Option<Vec::<SecurityGroupRule>>)`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressOutput::security_group_rules): <p>Information about the inbound (ingress) security group rules that were added.</p>
    /// - On failure, responds with [`SdkError<AuthorizeSecurityGroupIngressError>`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressError)
    pub fn authorize_security_group_ingress(
        &self,
    ) -> crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder {
        crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::new(self.handle.clone())
    }
}