{
  "description": "Repository is the Schema for the Repositories 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": "RepositorySpec defines the desired state of Repository.\n\nAn object representing a repository.",
      "properties": {
        "encryptionConfiguration": {
          "description": "The encryption configuration for the repository. This determines how the\ncontents of your repository are encrypted at rest.",
          "properties": {
            "encryptionType": {
              "type": "string"
            },
            "kmsKey": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "imageScanningConfiguration": {
          "description": "The image scanning configuration for the repository. This determines whether\nimages are scanned for known vulnerabilities after being pushed to the repository.",
          "properties": {
            "scanOnPush": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "imageTagMutability": {
          "description": "The tag mutability setting for the repository. If this parameter is omitted,\nthe default setting of MUTABLE will be used which will allow image tags to\nbe overwritten. If IMMUTABLE is specified, all image tags within the repository\nwill be immutable which will prevent them from being overwritten.",
          "type": "string"
        },
        "lifecyclePolicy": {
          "description": "The JSON repository policy text to apply to the repository.",
          "type": "string"
        },
        "name": {
          "description": "The name to use for the repository. The repository name may be specified\non its own (such as nginx-web-app) or it can be prepended with a namespace\nto group the repository into a category (such as project-a/nginx-web-app).\n\nThe repository name must start with a letter and can only contain lowercase\nletters, numbers, hyphens, underscores, and forward slashes.",
          "type": "string"
        },
        "policy": {
          "description": "The JSON repository policy text to apply to the repository. For more information,\nsee Amazon ECR repository policies (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html)\nin the Amazon Elastic Container Registry User Guide.",
          "type": "string"
        },
        "registryID": {
          "description": "The Amazon Web Services account ID associated with the registry to create\nthe repository. If you do not specify a registry, the default registry is\nassumed.",
          "type": "string"
        },
        "tags": {
          "description": "The metadata that you apply to the repository to help you categorize and\norganize them. Each tag consists of a key and an optional value, both of\nwhich you define. Tag keys can have a maximum character length of 128 characters,\nand tag values can have a maximum length of 256 characters.",
          "items": {
            "description": "The metadata to apply to a resource to help you categorize and organize them.\nEach tag consists of a key and a value, both of which you define. Tag keys\ncan have a maximum character length of 128 characters, and tag values can\nhave a maximum length of 256 characters.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "RepositoryStatus defines the observed state of Repository",
      "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
        },
        "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"
        },
        "createdAt": {
          "description": "The date and time, in JavaScript date format, when the repository was created.",
          "format": "date-time",
          "type": "string"
        },
        "repositoryURI": {
          "description": "The URI for the repository. You can use this URI for container image push\nand pull operations.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
