{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/IpamScopeId",
  "/properties/SourceIpamPoolId",
  "/properties/Locale",
  "/properties/AddressFamily",
  "/properties/PubliclyAdvertisable",
  "/properties/PublicIpSource",
  "/properties/AwsService",
  "/properties/SourceResource"
 ],
 "definitions": {
  "Cidr": {
   "anyOf": [
    {
     "format": "ipv4-network"
    },
    {
     "format": "ipv6-network"
    }
   ],
   "type": "string"
  },
  "ProvisionedCidr": {
   "additionalProperties": false,
   "properties": {
    "Cidr": {
     "$ref": "#/definitions/Cidr"
    }
   },
   "required": [
    "Cidr"
   ],
   "type": "object"
  },
  "SourceResource": {
   "additionalProperties": false,
   "properties": {
    "ResourceId": {
     "type": "string"
    },
    "ResourceOwner": {
     "type": "string"
    },
    "ResourceRegion": {
     "type": "string"
    },
    "ResourceType": {
     "enum": [
      "vpc"
     ],
     "enumCaseInsensitive": [
      "vpc"
     ],
     "type": "string"
    }
   },
   "required": [
    "ResourceId",
    "ResourceType",
    "ResourceRegion",
    "ResourceOwner"
   ],
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "maxLength": 128,
     "minLength": 1,
     "type": "string"
    },
    "Value": {
     "maxLength": 256,
     "minLength": 0,
     "type": "string"
    }
   },
   "required": [
    "Key",
    "Value"
   ],
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/IpamPoolId"
 ],
 "properties": {
  "AddressFamily": {
   "enumCaseInsensitive": [
    "ipv4",
    "ipv6"
   ],
   "type": "string"
  },
  "AllocationDefaultNetmaskLength": {
   "maximum": 128,
   "minimum": 0,
   "type": "integer"
  },
  "AllocationMaxNetmaskLength": {
   "maximum": 128,
   "minimum": 0,
   "type": "integer"
  },
  "AllocationMinNetmaskLength": {
   "maximum": 128,
   "minimum": 0,
   "type": "integer"
  },
  "AllocationResourceTags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "type": "array",
   "uniqueItems": true
  },
  "Arn": {
   "type": "string"
  },
  "AutoImport": {
   "type": "boolean"
  },
  "AwsService": {
   "enumCaseInsensitive": [
    "ec2",
    "global-services"
   ],
   "type": "string"
  },
  "Description": {
   "type": "string"
  },
  "IpamArn": {
   "type": "string"
  },
  "IpamPoolId": {
   "type": "string"
  },
  "IpamScopeArn": {
   "type": "string"
  },
  "IpamScopeId": {
   "type": "string"
  },
  "IpamScopeType": {
   "enum": [
    "public",
    "private"
   ],
   "type": "string"
  },
  "Locale": {
   "type": "string"
  },
  "PoolDepth": {
   "type": "integer"
  },
  "ProvisionedCidrs": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/ProvisionedCidr"
   },
   "type": "array",
   "uniqueItems": true
  },
  "PublicIpSource": {
   "enumCaseInsensitive": [
    "amazon",
    "byoip"
   ],
   "type": "string"
  },
  "PubliclyAdvertisable": {
   "type": "boolean"
  },
  "SourceIpamPoolId": {
   "type": "string"
  },
  "SourceResource": {
   "$ref": "#/definitions/SourceResource"
  },
  "State": {
   "enum": [
    "create-in-progress",
    "create-complete",
    "modify-in-progress",
    "modify-complete",
    "delete-in-progress",
    "delete-complete"
   ],
   "type": "string"
  },
  "StateMessage": {
   "type": "string"
  },
  "Tags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "type": "array",
   "uniqueItems": true
  }
 },
 "propertyTransform": {
  "/properties/AddressFamily": "$lowercase(AddressFamily)"
 },
 "readOnlyProperties": [
  "/properties/IpamPoolId",
  "/properties/Arn",
  "/properties/IpamScopeArn",
  "/properties/IpamScopeType",
  "/properties/IpamArn",
  "/properties/PoolDepth",
  "/properties/State",
  "/properties/StateMessage"
 ],
 "required": [
  "IpamScopeId",
  "AddressFamily"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ipam.git",
 "tagging": {
  "cloudFormationSystemTags": true,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::EC2::IPAMPool"
}
