addIpRoutes method

Future<void> addIpRoutes({
  1. required String directoryId,
  2. required List<IpRoute> ipRoutes,
  3. bool? updateSecurityGroupForDirectoryControllers,
})

If the DNS server for your on-premises domain uses a publicly addressable IP address, you must add a CIDR address block to correctly route traffic to and from your Microsoft AD on Amazon Web Services. AddIpRoutes adds this address block. You can also use AddIpRoutes to facilitate routing traffic that uses public IP ranges from your Microsoft AD on AWS to a peer VPC.

Before you call AddIpRoutes, ensure that all of the required permissions have been explicitly granted through a policy. For details about what permissions are required to run the AddIpRoutes operation, see AWS Directory Service API Permissions: Actions, Resources, and Conditions Reference.

May throw EntityDoesNotExistException. May throw EntityAlreadyExistsException. May throw InvalidParameterException. May throw DirectoryUnavailableException. May throw IpRouteLimitExceededException. May throw ClientException. May throw ServiceException.

Parameter directoryId : Identifier (ID) of the directory to which to add the address block.

Parameter ipRoutes : IP address blocks, using CIDR format, of the traffic to route. This is often the IP address block of the DNS server used for your on-premises domain.

Parameter updateSecurityGroupForDirectoryControllers : If set to true, updates the inbound and outbound rules of the security group that has the description: "AWS created security group for directory ID directory controllers." Following are the new rules:

Inbound:

  • Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0
  • Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0
  • Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0
  • Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0
  • Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0
  • Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0
  • Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0
  • Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0
  • Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0
  • Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0
  • Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0

Outbound:

  • Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0
These security rules impact an internal network interface that is not exposed publicly.

Implementation

Future<void> addIpRoutes({
  required String directoryId,
  required List<IpRoute> ipRoutes,
  bool? updateSecurityGroupForDirectoryControllers,
}) async {
  ArgumentError.checkNotNull(directoryId, 'directoryId');
  ArgumentError.checkNotNull(ipRoutes, 'ipRoutes');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'DirectoryService_20150416.AddIpRoutes'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'DirectoryId': directoryId,
      'IpRoutes': ipRoutes,
      if (updateSecurityGroupForDirectoryControllers != null)
        'UpdateSecurityGroupForDirectoryControllers':
            updateSecurityGroupForDirectoryControllers,
    },
  );
}