* Add support for VPC internal ranges to modules/net-vpc * Fix linting * Fix variable order * Fix README * Sort outputs. * Fix validation for terraform < 1.13
111 lines
3.7 KiB
JSON
111 lines
3.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "InternalRange",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"usage",
|
|
"peering"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the internal range. If not provided, the filename will be used."
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "An optional description of this internal range."
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"description": "User-defined labels.",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"ip_cidr_range": {
|
|
"type": "string",
|
|
"description": "The IP range that this internal range defines. Note: IPv6 ranges are limited to usage=EXTERNAL_TO_VPC and peering=FOR_SELF. For IPv6 ranges this field is compulsory."
|
|
},
|
|
"usage": {
|
|
"type": "string",
|
|
"enum": ["FOR_VPC", "EXTERNAL_TO_VPC", "FOR_MIGRATION"],
|
|
"description": "The type of usage set for this InternalRange."
|
|
},
|
|
"peering": {
|
|
"type": "string",
|
|
"enum": ["FOR_SELF", "FOR_PEER", "NOT_SHARED"],
|
|
"description": "The type of peering set for this internal range."
|
|
},
|
|
"prefix_length": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 32,
|
|
"description": "An alternate to ip_cidr_range. Can be set when trying to create a reservation that automatically finds a free range of the given size."
|
|
},
|
|
"target_cidr_range": {
|
|
"type": "array",
|
|
"description": "Optional. Can be set to narrow down or pick a different address space while searching for a free range.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"exclude_cidr_ranges": {
|
|
"type": "array",
|
|
"description": "Optional. List of IP CIDR ranges to be excluded. Only IPv4 CIDR ranges are supported.",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"allocation_options": {
|
|
"type": "object",
|
|
"description": "Options for automatically allocating a free range with a size given by prefixLength.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"allocation_strategy": {
|
|
"type": "string",
|
|
"enum": ["RANDOM", "FIRST_AVAILABLE", "RANDOM_FIRST_N_AVAILABLE", "FIRST_SMALLEST_FITTING"],
|
|
"description": "Sets the strategy used to automatically find a free range of a size given by prefixLength."
|
|
},
|
|
"first_available_ranges_lookup_size": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"description": "Must be set when allocation_strategy is RANDOM_FIRST_N_AVAILABLE, otherwise must remain unset."
|
|
}
|
|
}
|
|
},
|
|
"overlaps": {
|
|
"type": "array",
|
|
"description": "Optional. Types of resources that are allowed to overlap with the current internal range.",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": ["OVERLAP_ROUTE_RANGE", "OVERLAP_EXISTING_SUBNET_RANGE"]
|
|
}
|
|
},
|
|
"migration": {
|
|
"type": "object",
|
|
"description": "Specification for migration with source and target resource names.",
|
|
"additionalProperties": false,
|
|
"required": ["source", "target"],
|
|
"properties": {
|
|
"source": {
|
|
"type": "string",
|
|
"description": "Resource path as an URI of the source resource, for example a subnet."
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"description": "Resource path of the target resource. The target project can be different."
|
|
}
|
|
}
|
|
},
|
|
"immutable": {
|
|
"type": "boolean",
|
|
"description": "Immutable ranges cannot have their fields modified, except for labels and description."
|
|
}
|
|
},
|
|
"anyOf": [
|
|
{"required": ["ip_cidr_range"]},
|
|
{"required": ["prefix_length"]}
|
|
]
|
|
}
|