authorizeClusterSecurityGroupIngress method

Future<AuthorizeClusterSecurityGroupIngressResult> authorizeClusterSecurityGroupIngress({
  1. required String clusterSecurityGroupName,
  2. String? cidrip,
  3. String? eC2SecurityGroupName,
  4. String? eC2SecurityGroupOwnerId,
})

Adds an inbound (ingress) rule to an Amazon Redshift security group. Depending on whether the application accessing your cluster is running on the Internet or an Amazon EC2 instance, you can authorize inbound access to either a Classless Interdomain Routing (CIDR)/Internet Protocol (IP) range or to an Amazon EC2 security group. You can add as many as 20 ingress rules to an Amazon Redshift security group.

If you authorize access to an Amazon EC2 security group, specify EC2SecurityGroupName and EC2SecurityGroupOwnerId. The Amazon EC2 security group and Amazon Redshift cluster must be in the same AWS Region.

If you authorize access to a CIDR/IP address range, specify CIDRIP. For an overview of CIDR blocks, see the Wikipedia article on Classless Inter-Domain Routing.

You must also associate the security group with a cluster so that clients running on these IP addresses or the EC2 instance are authorized to connect to the cluster. For information about managing security groups, go to Working with Security Groups in the Amazon Redshift Cluster Management Guide.

May throw ClusterSecurityGroupNotFoundFault. May throw InvalidClusterSecurityGroupStateFault. May throw AuthorizationAlreadyExistsFault. May throw AuthorizationQuotaExceededFault.

Parameter clusterSecurityGroupName : The name of the security group to which the ingress rule is added.

Parameter cidrip : The IP range to be added the Amazon Redshift security group.

Parameter eC2SecurityGroupName : The EC2 security group to be added the Amazon Redshift security group.

Parameter eC2SecurityGroupOwnerId : The AWS account number of the owner of the security group specified by the EC2SecurityGroupName parameter. The AWS Access Key ID is not an acceptable value.

Example: 111122223333

Implementation

Future<AuthorizeClusterSecurityGroupIngressResult>
    authorizeClusterSecurityGroupIngress({
  required String clusterSecurityGroupName,
  String? cidrip,
  String? eC2SecurityGroupName,
  String? eC2SecurityGroupOwnerId,
}) async {
  ArgumentError.checkNotNull(
      clusterSecurityGroupName, 'clusterSecurityGroupName');
  _s.validateStringLength(
    'clusterSecurityGroupName',
    clusterSecurityGroupName,
    0,
    2147483647,
    isRequired: true,
  );
  _s.validateStringLength(
    'cidrip',
    cidrip,
    0,
    2147483647,
  );
  _s.validateStringLength(
    'eC2SecurityGroupName',
    eC2SecurityGroupName,
    0,
    2147483647,
  );
  _s.validateStringLength(
    'eC2SecurityGroupOwnerId',
    eC2SecurityGroupOwnerId,
    0,
    2147483647,
  );
  final $request = <String, dynamic>{};
  $request['ClusterSecurityGroupName'] = clusterSecurityGroupName;
  cidrip?.also((arg) => $request['CIDRIP'] = arg);
  eC2SecurityGroupName?.also((arg) => $request['EC2SecurityGroupName'] = arg);
  eC2SecurityGroupOwnerId
      ?.also((arg) => $request['EC2SecurityGroupOwnerId'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'AuthorizeClusterSecurityGroupIngress',
    version: '2012-12-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['AuthorizeClusterSecurityGroupIngressMessage'],
    shapes: shapes,
    resultWrapper: 'AuthorizeClusterSecurityGroupIngressResult',
  );
  return AuthorizeClusterSecurityGroupIngressResult.fromXml($result);
}