{
  "description": "HostedZone is the Schema for the HostedZones API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "HostedZoneSpec defines the desired state of HostedZone.\n\nA complex type that contains general information about the hosted zone.",
      "properties": {
        "delegationSetID": {
          "description": "If you want to associate a reusable delegation set with this hosted zone,\nthe ID that Amazon Route 53 assigned to the reusable delegation set when\nyou created it. For more information about reusable delegation sets, see\nCreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html).\n\nIf you are using a reusable delegation set to create a public hosted zone\nfor a subdomain, make sure that the parent hosted zone doesn't use one or\nmore of the same name servers. If you have overlapping nameservers, the operation\nwill cause a ConflictingDomainsExist error.",
          "type": "string"
        },
        "hostedZoneConfig": {
          "description": "(Optional) A complex type that contains the following optional values:\n\n  - For public and private hosted zones, an optional comment\n\n  - For private hosted zones, an optional PrivateZone element\n\nIf you don't specify a comment or the PrivateZone element, omit HostedZoneConfig\nand the other elements.",
          "properties": {
            "comment": {
              "type": "string"
            },
            "privateZone": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "The name of the domain. Specify a fully qualified domain name, for example,\nwww.example.com. The trailing dot is optional; Amazon Route 53 assumes that\nthe domain name is fully qualified. This means that Route 53 treats www.example.com\n(without a trailing dot) and www.example.com. (with a trailing dot) as identical.\n\nIf you're creating a public hosted zone, this is the name you have registered\nwith your DNS registrar. If your domain name is registered with a registrar\nother than Route 53, change the name servers for your domain to the set of\nNameServers that CreateHostedZone returns in DelegationSet.",
          "type": "string"
        },
        "tags": {
          "description": "A complex type that contains a list of the tags that you want to add to the\nspecified health check or hosted zone and/or the tags that you want to edit\nValue for.\n\nYou can add a maximum of 10 tags to a health check or a hosted zone.",
          "items": {
            "description": "A complex type that contains information about a tag that you want to add\nor edit for the specified health check or hosted zone.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "vpc": {
          "description": "(Private hosted zones only) A complex type that contains information about\nthe Amazon VPC that you're associating with this hosted zone.\n\nYou can specify only one Amazon VPC when you create a private hosted zone.\nIf you are associating a VPC with a hosted zone with this request, the paramaters\nVPCId and VPCRegion are also required.\n\nTo associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone\n(https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html)\nafter you create a hosted zone.",
          "properties": {
            "vpcID": {
              "description": "(Private hosted zones only) The ID of an Amazon VPC.",
              "type": "string"
            },
            "vpcRegion": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "HostedZoneStatus defines the observed state of HostedZone",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "callerReference": {
          "description": "The value that you specified for CallerReference when you created the hosted\nzone.",
          "type": "string"
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "config": {
          "description": "A complex type that includes the Comment and PrivateZone elements. If you\nomitted the HostedZoneConfig and Comment elements from the request, the Config\nand Comment elements don't appear in the response.",
          "properties": {
            "comment": {
              "type": "string"
            },
            "privateZone": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "delegationSet": {
          "description": "A complex type that describes the name servers for this hosted zone.",
          "properties": {
            "callerReference": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "nameServers": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "id": {
          "description": "The ID that Amazon Route 53 assigned to the hosted zone when you created\nit.",
          "type": "string"
        },
        "linkedService": {
          "description": "If the hosted zone was created by another service, the service that created\nthe hosted zone. When a hosted zone is created by another service, you can't\nedit or delete it using Route 53.",
          "properties": {
            "description": {
              "type": "string"
            },
            "servicePrincipal": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "resourceRecordSetCount": {
          "description": "The number of resource record sets in the hosted zone.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
