disassociateVPCFromHostedZone method

Future<DisassociateVPCFromHostedZoneResponse> disassociateVPCFromHostedZone({
  1. required String hostedZoneId,
  2. required VPC vpc,
  3. String? comment,
})

Disassociates an Amazon Virtual Private Cloud (Amazon VPC) from an Amazon Route 53 private hosted zone. Note the following:

  • You can't disassociate the last Amazon VPC from a private hosted zone.
  • You can't convert a private hosted zone into a public hosted zone.
  • You can submit a DisassociateVPCFromHostedZone request using either the account that created the hosted zone or the account that created the Amazon VPC.
  • Some services, such as AWS Cloud Map and Amazon Elastic File System (Amazon EFS) automatically create hosted zones and associate VPCs with the hosted zones. A service can create a hosted zone using your account or using its own account. You can disassociate a VPC from a hosted zone only if the service created the hosted zone using your account.

    When you run DisassociateVPCFromHostedZone, if the hosted zone has a value for OwningAccount, you can use DisassociateVPCFromHostedZone. If the hosted zone has a value for OwningService, you can't use DisassociateVPCFromHostedZone.

May throw NoSuchHostedZone. May throw InvalidVPCId. May throw VPCAssociationNotFound. May throw LastVPCAssociation. May throw InvalidInput.

Parameter hostedZoneId : The ID of the private hosted zone that you want to disassociate a VPC from.

Parameter vpc : A complex type that contains information about the VPC that you're disassociating from the specified hosted zone.

Parameter comment : Optional: A comment about the disassociation request.

Implementation

Future<DisassociateVPCFromHostedZoneResponse> disassociateVPCFromHostedZone({
  required String hostedZoneId,
  required VPC vpc,
  String? comment,
}) async {
  ArgumentError.checkNotNull(hostedZoneId, 'hostedZoneId');
  _s.validateStringLength(
    'hostedZoneId',
    hostedZoneId,
    0,
    32,
    isRequired: true,
  );
  ArgumentError.checkNotNull(vpc, 'vpc');
  final $result = await _protocol.send(
    method: 'POST',
    requestUri:
        '/2013-04-01/hostedzone/${Uri.encodeComponent(hostedZoneId)}/disassociatevpc',
    payload: DisassociateVPCFromHostedZoneRequest(
            hostedZoneId: hostedZoneId, vpc: vpc, comment: comment)
        .toXml(
      'DisassociateVPCFromHostedZoneRequest',
      attributes: [
        _s.XmlAttribute(_s.XmlName('xmlns'),
            'https://route53.amazonaws.com/doc/2013-04-01/'),
      ],
    ),
    exceptionFnMap: _exceptionFns,
  );
  return DisassociateVPCFromHostedZoneResponse.fromXml($result.body);
}