// This file is auto-generated, don't edit it import * as $dara from '@darabonba/typescript'; export class AuthorizeSecurityGroupEgressRequestPermissions extends $dara.Model { /** * @remarks * The description of the security group rule. The description can be up to 1 to 512 characters in length. * * @example * This is description. */ description?: string; /** * @remarks * The destination IPv4 CIDR block of the security group rule. IPv4 CIDR blocks and IPv4 addresses are supported. * * @example * 10.0.0.0/8 */ destCidrIp?: string; /** * @remarks * The ID of the destination security group that is specified in the security group rule. * * * You must specify at least one of the following parameters: `DestGroupId`, `DestCidrIp`, `Ipv6DestCidrIp`, and `DestPrefixListId`. * * If you specify `DestGroupId` but do not specify `DestCidrIp`, you must set `NicType` to intranet. * * If you specify both `DestGroupId` and `DestCidrIp`, `DestCidrIp` takes precedence. * * @example * sg-bp67acfmxazb4p**** */ destGroupId?: string; /** * @remarks * The Alibaba Cloud account that manages the destination security group. * * * If both `DestGroupOwnerAccount` and `DestGroupOwnerId` are empty, the rule is created to control access to another security group in your Alibaba Cloud account. * * If `DestCidrIp` is configured, `DestGroupOwnerAccount` is ignored. * * @example * Test@aliyun.com */ destGroupOwnerAccount?: string; /** * @remarks * The ID of the Alibaba Cloud account that manages the destination security group. * * * If both `DestGroupOwnerId` and `DestGroupOwnerAccount` are empty, the rule is created to control access to another security group in your Alibaba Cloud account. * * If you specify `DestCidrIp`, `DestGroupOwnerId` is ignored. * * @example * 12345678910 */ destGroupOwnerId?: number; /** * @remarks * The ID of the destination prefix list. You can call the [DescribePrefixLists](https://help.aliyun.com/document_detail/205046.html) operation to query the IDs of available prefix lists. * * Notes: * * * If a security group resides in the classic network, you cannot specify prefix lists in the rules of the security group. For information about the limits on security groups and prefix lists, see the [Security groups](~~25412#SecurityGroupQuota1~~) section of the "Limits and quotas on ECS" topic. * * If you specify `DestCidrIp`, `Ipv6DestCidrIp`, or `DestGroupId`, this parameter is ignored. * * @example * pl-x1j1k5ykzqlixdcy**** */ destPrefixListId?: string; /** * @remarks * Network Layer /transport layer protocol. Two types of assignments are supported: * * 1. The case-insensitive protocol name. Valid value: * * * ICMP * * GRE * * TCP * * UDP * * ALL: supports all protocols. * * 2. The value of the IANA-compliant protocol number, which is an integer from 0 to 255. List of regions currently available: * * * Philippines (Manila) * * UK (London) * * Malaysia (Kuala Lumpur) * * China (Hohhot) * * China (Qingdao) * * US (Silicon Valley) * * Singapore * * @example * ALL */ ipProtocol?: string; /** * @remarks * The destination IPv6 CIDR block of the security group rule. IPv6 CIDR blocks and IPv6 addresses are supported. * * > This parameter is valid only for VPC-type ECS instances that support IPv6. This parameter and the `DestCidrIp` parameter cannot be set at the same time. * * @example * 2001:db8:1233:1a00::*** */ ipv6DestCidrIp?: string; /** * @remarks * The source IPv6 CIDR block of the security group rule. or IPv6 address. * * This property is used to support quintuple rules. For more information, see [Security group quintuple rules](https://help.aliyun.com/document_detail/97439.html). * * > This parameter is valid only for ECS instances that reside in virtual private clouds (VPCs) and support IPv6 CIDR blocks. You cannot specify this parameter and `DestCidrIp` in the same request. * * @example * 2001:db8:1234:1a00::*** */ ipv6SourceCidrIp?: string; /** * @remarks * The network interface controller (NIC) type of the security group rule if the security group resides in the classic network. Valid values: * * * internet: public NIC. * * * intranet: internal NIC. * * * If the security group resides in a VPC, this parameter is set to intranet by default and cannot be changed. * * If you specify only DestGroupId to create a rule that controls access to the specified security group, you must set this parameter to intranet. * * Default value: internet. * * @example * intranet */ nicType?: string; /** * @remarks * The action of the security group rule. Valid values: * * * accept: allows outbound access. * * drop: denies outbound access and returns no responses. In this case, the request times out or the connection cannot be established. * * Default value: accept. * * @example * accept */ policy?: string; /** * @remarks * The destination port range of the security group rule. Valid values: * * * TCP/UDP: Valid values: 1 to 65535. Use a forward slash (/) to separate the start and end ports. Example: 1/200. * * ICMP:-1/-1. * * GRE:-1/-1. * * ALL:-1/-1. * * @example * 80/80 */ portRange?: string; /** * @remarks * The ID of the port list. You can call the `DescribePortRangeLists` operation to query the IDs of available prefix lists. * * * If you specify `Permissions.N.PortRange`, this parameter is ignored. * * If a security group resides in the classic network, you cannot reference port lists in the rules of the security group. For more information about limits on security groups and ports, see [Limits on security groups](~~25412#SecurityGroupQuota1~~). * * @example * prl-2ze9743**** */ portRangeListId?: string; /** * @remarks * The priority of security group rule N. A smaller value specifies a higher priority. Valid values: 1 to 100. * * Default value: 1. * * @example * 1 */ priority?: string; /** * @remarks * The source IPv4 CIDR block of the security group rule. IPv4 CIDR blocks and IPv4 addresses are supported. * * This property is used to support quintuple rules. For more information, see [Security group quintuple rules](https://help.aliyun.com/document_detail/97439.html). * * @example * 10.0.0.0/8 */ sourceCidrIp?: string; /** * @remarks * The source port range of the security group rule. Valid values: * * * TCP/UDP protocol: 1 to 65535. Use a forward slash (/) to separate the start and end ports. Example: 1/200. * * ICMP protocol:-1/-1. * * GRE protocol:-1/-1. * * ALL:-1/-1. * * This property is used to support quintuple rules. For more information, see [Security group quintuple rules](https://help.aliyun.com/document_detail/97439.html). * * @example * 80/80 */ sourcePortRange?: string; static names(): { [key: string]: string } { return { description: 'Description', destCidrIp: 'DestCidrIp', destGroupId: 'DestGroupId', destGroupOwnerAccount: 'DestGroupOwnerAccount', destGroupOwnerId: 'DestGroupOwnerId', destPrefixListId: 'DestPrefixListId', ipProtocol: 'IpProtocol', ipv6DestCidrIp: 'Ipv6DestCidrIp', ipv6SourceCidrIp: 'Ipv6SourceCidrIp', nicType: 'NicType', policy: 'Policy', portRange: 'PortRange', portRangeListId: 'PortRangeListId', priority: 'Priority', sourceCidrIp: 'SourceCidrIp', sourcePortRange: 'SourcePortRange', }; } static types(): { [key: string]: any } { return { description: 'string', destCidrIp: 'string', destGroupId: 'string', destGroupOwnerAccount: 'string', destGroupOwnerId: 'number', destPrefixListId: 'string', ipProtocol: 'string', ipv6DestCidrIp: 'string', ipv6SourceCidrIp: 'string', nicType: 'string', policy: 'string', portRange: 'string', portRangeListId: 'string', priority: 'string', sourceCidrIp: 'string', sourcePortRange: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class AuthorizeSecurityGroupEgressRequest extends $dara.Model { /** * @remarks * The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The **token** can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [Ensure idempotence](https://help.aliyun.com/document_detail/25693.html). * * @example * 123e4567-e89b-12d3-a456-426655440000 */ clientToken?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.Description` to specify the description of security group rule N. * * @example * This is description. * * @deprecated */ description?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.DestCidrIp` to specify the destination IPv4 CIDR block. * * @example * 10.0.0.0/8 * * @deprecated */ destCidrIp?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.DestGroupId` to specify the ID of the destination security group. * * @example * sg-bp67acfmxazb4p**** * * @deprecated */ destGroupId?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.DestGroupOwnerAccount` to specify the Alibaba Cloud account that manages the destination security group. * * @example * Test@aliyun.com * * @deprecated */ destGroupOwnerAccount?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.DestGroupOwnerId` to specify the ID of the Alibaba Cloud account that manages the destination security group. * * @example * 12345678910 * * @deprecated */ destGroupOwnerId?: number; /** * @remarks * This parameter is deprecated. Use `Permissions.N.DestPrefixListId` to specify the ID of the destination prefix list. * * @example * pl-x1j1k5ykzqlixdcy**** * * @deprecated */ destPrefixListId?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.IpProtocol` to specify the protocol. * * @example * ALL * * @deprecated */ ipProtocol?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.Ipv6DestCidrIp` to specify the destination IPv6 CIDR block. * * @example * 2001:db8:1233:1a00::*** * * @deprecated */ ipv6DestCidrIp?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.Ipv6SourceCidrIp` to specify the source IPv6 CIDR block. * * @example * 2001:db8:1234:1a00::*** * * @deprecated */ ipv6SourceCidrIp?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.NicType` to specify the NIC type. * * @example * intranet * * @deprecated */ nicType?: string; ownerAccount?: string; ownerId?: number; /** * @remarks * An array of security group rules. You can specify 1 to 100 security group rules. */ permissions?: AuthorizeSecurityGroupEgressRequestPermissions[]; /** * @remarks * This parameter is deprecated. Use `Permissions.N.Policy` to specify whether to allow outbound access. * * @example * accept * * @deprecated */ policy?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.PortRange` to specify the range of destination ports. * * @example * 80/80 * * @deprecated */ portRange?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.Priority` to specify the rule priority. * * @example * 1 * * @deprecated */ priority?: string; /** * @remarks * The region ID of the source security group. You can call the [DescribeRegions](https://help.aliyun.com/document_detail/25609.html) operation to query the most recent region list. * * This parameter is required. * * @example * cn-hangzhou */ regionId?: string; resourceOwnerAccount?: string; resourceOwnerId?: number; /** * @remarks * The security group ID. * * This parameter is required. * * @example * sg-bp67acfmxazb4p**** */ securityGroupId?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.SourceCidrIp` to specify the source IPv4 CIDR block. * * @example * 10.0.0.0/8 * * @deprecated */ sourceCidrIp?: string; /** * @remarks * This parameter is deprecated. Use `Permissions.N.SourcePortRange` to specify the range of source ports. * * @example * 80/80 * * @deprecated */ sourcePortRange?: string; static names(): { [key: string]: string } { return { clientToken: 'ClientToken', description: 'Description', destCidrIp: 'DestCidrIp', destGroupId: 'DestGroupId', destGroupOwnerAccount: 'DestGroupOwnerAccount', destGroupOwnerId: 'DestGroupOwnerId', destPrefixListId: 'DestPrefixListId', ipProtocol: 'IpProtocol', ipv6DestCidrIp: 'Ipv6DestCidrIp', ipv6SourceCidrIp: 'Ipv6SourceCidrIp', nicType: 'NicType', ownerAccount: 'OwnerAccount', ownerId: 'OwnerId', permissions: 'Permissions', policy: 'Policy', portRange: 'PortRange', priority: 'Priority', regionId: 'RegionId', resourceOwnerAccount: 'ResourceOwnerAccount', resourceOwnerId: 'ResourceOwnerId', securityGroupId: 'SecurityGroupId', sourceCidrIp: 'SourceCidrIp', sourcePortRange: 'SourcePortRange', }; } static types(): { [key: string]: any } { return { clientToken: 'string', description: 'string', destCidrIp: 'string', destGroupId: 'string', destGroupOwnerAccount: 'string', destGroupOwnerId: 'number', destPrefixListId: 'string', ipProtocol: 'string', ipv6DestCidrIp: 'string', ipv6SourceCidrIp: 'string', nicType: 'string', ownerAccount: 'string', ownerId: 'number', permissions: { 'type': 'array', 'itemType': AuthorizeSecurityGroupEgressRequestPermissions }, policy: 'string', portRange: 'string', priority: 'string', regionId: 'string', resourceOwnerAccount: 'string', resourceOwnerId: 'number', securityGroupId: 'string', sourceCidrIp: 'string', sourcePortRange: 'string', }; } validate() { if(Array.isArray(this.permissions)) { $dara.Model.validateArray(this.permissions); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } }