aws_sdk_ec2/client/
authorize_security_group_ingress.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2impl super::Client {
3    /// Constructs a fluent builder for the [`AuthorizeSecurityGroupIngress`](crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder) operation.
4    ///
5    /// - The fluent builder is configurable:
6    ///   - [`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><note>  <p>Amazon Web Services <a href="https://en.wikipedia.org/wiki/Canonicalization">canonicalizes</a> IPv4 and IPv6 CIDRs. For example, if you specify 100.68.0.18/18 for the CIDR block, Amazon Web Services canonicalizes the CIDR block to 100.68.0.0/18. Any subsequent DescribeSecurityGroups and DescribeSecurityGroupRules calls will return the canonicalized form of the CIDR block. Additionally, if you attempt to add another rule with the non-canonical form of the CIDR (such as 100.68.0.18/18) and there is already a rule for the canonicalized form of the CIDR block (such as 100.68.0.0/18), the API throws an duplicate rule error.</p> </note> <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>
7    ///   - [`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>
8    ///   - [`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>
9    ///   - [`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>
10    ///   - [`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>
11    ///   - [`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>
12    ///   - [`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>
13    ///   - [`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>
14    ///   - [`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>
15    ///   - [`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>
16    ///   - [`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>
17    /// - On success, responds with [`AuthorizeSecurityGroupIngressOutput`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressOutput) with field(s):
18    ///   - [`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>
19    ///   - [`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>
20    /// - On failure, responds with [`SdkError<AuthorizeSecurityGroupIngressError>`](crate::operation::authorize_security_group_ingress::AuthorizeSecurityGroupIngressError)
21    pub fn authorize_security_group_ingress(
22        &self,
23    ) -> crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder {
24        crate::operation::authorize_security_group_ingress::builders::AuthorizeSecurityGroupIngressFluentBuilder::new(self.handle.clone())
25    }
26}