class_docstr: A wrapper around Aliyun SDK. We use this wrapper in aliyun node provider.
  
  Parameters:
      access_key: The AccessKey ID of your aliyun account.
      access_key_secret: The AccessKey secret of your aliyun account.
      region_id: A region is a geographic area where a data center resides.
                 Region_id is the ID of region (e.g., cn-hangzhou,
                 us-west-1, etc.)
      max_retries: The maximum number of retries each connection.
class_docstr_tok: ["A","wrapper","around","Aliyun","SDK",".","We","use","this","wrapper","in","aliyun","node","provider",".","Parameters",":","access_key",":","The","AccessKey","ID","of","your","aliyun","account",".","access_key_secret",":","The","AccessKey","secret","of","your","aliyun","account",".","region_id",":","A","region","is","a","geographic","area","where","a","data","center","resides",".","Region_id","is","the","ID","of","region","(","e.g.",",","cn-hangzhou",",","us-west-1",",","etc",".",")","max_retries",":","The","maximum","number","of","retries","each","connection","."]
docstr: Create an inbound security group rule.
  
  :param ip_protocol: The transport layer protocol.
  :param port_range: The range of destination ports relevant to
                     the transport layer protocol.
  :param security_group_id: The ID of the destination security group.
  :param source_cidr_ip: The range of source IPv4 addresses.
                         CIDR blocks and IPv4 addresses are supported.
docstr_tok: ["Create","an","inbound","security","group","rule",".",":","param","ip_protocol",":","The","transport","layer","protocol",".",":","param","port_range",":","The","range","of","destination","ports","relevant","to","the","transport","layer","protocol",".",":","param","security_group_id",":","The","ID","of","the","destination","security","group",".",":","param","source_cidr_ip",":","The","range","of","source","IPv4","addresses",".","CIDR","blocks","and","IPv4","addresses","are","supported","."]
code: def authorize_security_group(
      self, ip_protocol, port_range, security_group_id, source_cidr_ip
  ):
      """Create an inbound security group rule.
  
      :param ip_protocol: The transport layer protocol.
      :param port_range: The range of destination ports relevant to
                         the transport layer protocol.
      :param security_group_id: The ID of the destination security group.
      :param source_cidr_ip: The range of source IPv4 addresses.
                             CIDR blocks and IPv4 addresses are supported.
      """
      request = AuthorizeSecurityGroupRequest()
      request.set_IpProtocol(ip_protocol)
      request.set_PortRange(port_range)
      request.set_SecurityGroupId(security_group_id)
      request.set_SourceCidrIp(source_cidr_ip)
      self._send_request(request)
  
imports: import json
  import logging
  from aliyunsdkcore import client
  from aliyunsdkcore.acs_exception.exceptions import ClientException, ServerException
  from aliyunsdkecs.request.v20140526.AllocatePublicIpAddressRequest import AllocatePublicIpAddressRequest
  from aliyunsdkecs.request.v20140526.AuthorizeSecurityGroupRequest import AuthorizeSecurityGroupRequest
  from aliyunsdkecs.request.v20140526.CreateInstanceRequest import CreateInstanceRequest
  from aliyunsdkecs.request.v20140526.CreateKeyPairRequest import CreateKeyPairRequest
  from aliyunsdkecs.request.v20140526.CreateSecurityGroupRequest import CreateSecurityGroupRequest
  from aliyunsdkecs.request.v20140526.CreateVpcRequest import CreateVpcRequest
  from aliyunsdkecs.request.v20140526.CreateVSwitchRequest import CreateVSwitchRequest
  from aliyunsdkecs.request.v20140526.DeleteInstanceRequest import DeleteInstanceRequest
  from aliyunsdkecs.request.v20140526.DeleteInstancesRequest import DeleteInstancesRequest
  from aliyunsdkecs.request.v20140526.DeleteKeyPairsRequest import DeleteKeyPairsRequest
  from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
  from aliyunsdkecs.request.v20140526.DescribeKeyPairsRequest import DescribeKeyPairsRequest
  from aliyunsdkecs.request.v20140526.DescribeSecurityGroupsRequest import DescribeSecurityGroupsRequest
  from aliyunsdkecs.request.v20140526.DescribeVpcsRequest import DescribeVpcsRequest
  from aliyunsdkecs.request.v20140526.DescribeVSwitchesRequest import DescribeVSwitchesRequest
  from aliyunsdkecs.request.v20140526.ImportKeyPairRequest import ImportKeyPairRequest
  from aliyunsdkecs.request.v20140526.RunInstancesRequest import RunInstancesRequest
  from aliyunsdkecs.request.v20140526.StartInstanceRequest import StartInstanceRequest
  from aliyunsdkecs.request.v20140526.StopInstanceRequest import StopInstanceRequest
  from aliyunsdkecs.request.v20140526.StopInstancesRequest import StopInstancesRequest
  from aliyunsdkecs.request.v20140526.TagResourcesRequest import TagResourcesRequest
label_desc: Use image node_id 7 for calling the AcsClient obj's underlying member method code with example usage: obj.authorize_security_group(ip_protocol, port_range, security_group_id, source_cidr_ip) without return types