apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.5.0
  labels:
    app.kubernetes.io/instance: flux-system
  name: imagepolicies.image.toolkit.fluxcd.io
spec:
  group: image.toolkit.fluxcd.io
  names:
    kind: ImagePolicy
    listKind: ImagePolicyList
    plural: imagepolicies
    singular: imagepolicy
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - jsonPath: .status.latestImage
          name: LatestImage
          type: string
      name: v1alpha1
      schema:
        openAPIV3Schema:
          description: ImagePolicy is the Schema for the imagepolicies API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More 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. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: ImagePolicySpec defines the parameters for calculating the
                ImagePolicy
              properties:
                filterTags:
                  description: FilterTags enables filtering for only a subset of tags
                    based on a set of rules. If no rules are provided, all the tags
                    from the repository will be ordered and compared.
                  properties:
                    extract:
                      description: Extract allows a capture group to be extracted from
                        the specified regular expression pattern, useful before tag
                        evaluation.
                      type: string
                    pattern:
                      description: Pattern specifies a regular expression pattern used
                        to filter for image tags.
                      type: string
                  type: object
                imageRepositoryRef:
                  description: ImageRepositoryRef points at the object specifying the
                    image being scanned
                  properties:
                    name:
                      description: Name of the referent
                      type: string
                  required:
                    - name
                  type: object
                policy:
                  description: Policy gives the particulars of the policy to be followed
                    in selecting the most recent image
                  properties:
                    alphabetical:
                      description: Alphabetical set of rules to use for alphabetical
                        ordering of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the letters of the alphabet as tags, ascending order
                            would select Z, and descending order would select A.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    numerical:
                      description: Numerical set of rules to use for numerical ordering
                        of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the integer values from 0 to 9 as tags, ascending
                            order would select 9, and descending order would select
                            0.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    semver:
                      description: SemVer gives a semantic version range to check against
                        the tags available.
                      properties:
                        range:
                          description: Range gives a semver range for the image tag;
                            the highest version within the range that's a tag yields
                            the latest image.
                          type: string
                      required:
                        - range
                      type: object
                  type: object
              required:
                - imageRepositoryRef
                - policy
              type: object
            status:
              description: ImagePolicyStatus defines the observed state of ImagePolicy
              properties:
                conditions:
                  items:
                    description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                    \n     // other fields }"
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition
                          transitioned from one status to another. This should be when
                          the underlying condition changed.  If that is not known, then
                          using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating
                          details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation
                          that the condition was set based upon. For instance, if .metadata.generation
                          is currently 12, but the .status.conditions[x].observedGeneration
                          is 9, the condition is out of date with respect to the current
                          state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating
                          the reason for the condition's last transition. Producers
                          of specific condition types may define expected values and
                          meanings for this field, and whether the values are considered
                          a guaranteed API. The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                          --- Many .condition.type values are consistent across resources
                          like Available, but because arbitrary conditions can be useful
                          (see .node.status.conditions), the ability to deconflict is
                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                latestImage:
                  description: LatestImage gives the first in the list of images scanned
                    by the image repository, when filtered and ordered according to
                    the policy.
                  type: string
                observedGeneration:
                  format: int64
                  type: integer
              type: object
          type: object
      served: true
      storage: false
      subresources:
        status: {}
    - additionalPrinterColumns:
        - jsonPath: .status.latestImage
          name: LatestImage
          type: string
      name: v1alpha2
      schema:
        openAPIV3Schema:
          description: ImagePolicy is the Schema for the imagepolicies API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More 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. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: ImagePolicySpec defines the parameters for calculating the
                ImagePolicy
              properties:
                filterTags:
                  description: FilterTags enables filtering for only a subset of tags
                    based on a set of rules. If no rules are provided, all the tags
                    from the repository will be ordered and compared.
                  properties:
                    extract:
                      description: Extract allows a capture group to be extracted from
                        the specified regular expression pattern, useful before tag
                        evaluation.
                      type: string
                    pattern:
                      description: Pattern specifies a regular expression pattern used
                        to filter for image tags.
                      type: string
                  type: object
                imageRepositoryRef:
                  description: ImageRepositoryRef points at the object specifying the
                    image being scanned
                  properties:
                    name:
                      description: Name of the referent
                      type: string
                  required:
                    - name
                  type: object
                policy:
                  description: Policy gives the particulars of the policy to be followed
                    in selecting the most recent image
                  properties:
                    alphabetical:
                      description: Alphabetical set of rules to use for alphabetical
                        ordering of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the letters of the alphabet as tags, ascending order
                            would select Z, and descending order would select A.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    numerical:
                      description: Numerical set of rules to use for numerical ordering
                        of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the integer values from 0 to 9 as tags, ascending
                            order would select 9, and descending order would select
                            0.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    semver:
                      description: SemVer gives a semantic version range to check against
                        the tags available.
                      properties:
                        range:
                          description: Range gives a semver range for the image tag;
                            the highest version within the range that's a tag yields
                            the latest image.
                          type: string
                      required:
                        - range
                      type: object
                  type: object
              required:
                - imageRepositoryRef
                - policy
              type: object
            status:
              description: ImagePolicyStatus defines the observed state of ImagePolicy
              properties:
                conditions:
                  items:
                    description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                    \n     // other fields }"
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition
                          transitioned from one status to another. This should be when
                          the underlying condition changed.  If that is not known, then
                          using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating
                          details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation
                          that the condition was set based upon. For instance, if .metadata.generation
                          is currently 12, but the .status.conditions[x].observedGeneration
                          is 9, the condition is out of date with respect to the current
                          state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating
                          the reason for the condition's last transition. Producers
                          of specific condition types may define expected values and
                          meanings for this field, and whether the values are considered
                          a guaranteed API. The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                          --- Many .condition.type values are consistent across resources
                          like Available, but because arbitrary conditions can be useful
                          (see .node.status.conditions), the ability to deconflict is
                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                latestImage:
                  description: LatestImage gives the first in the list of images scanned
                    by the image repository, when filtered and ordered according to
                    the policy.
                  type: string
                observedGeneration:
                  format: int64
                  type: integer
              type: object
          type: object
      served: true
      storage: false
      subresources:
        status: {}
    - additionalPrinterColumns:
        - jsonPath: .status.latestImage
          name: LatestImage
          type: string
      name: v1beta1
      schema:
        openAPIV3Schema:
          description: ImagePolicy is the Schema for the imagepolicies API
          properties:
            apiVersion:
              description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More 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. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
              type: string
            metadata:
              type: object
            spec:
              description: ImagePolicySpec defines the parameters for calculating the
                ImagePolicy
              properties:
                filterTags:
                  description: FilterTags enables filtering for only a subset of tags
                    based on a set of rules. If no rules are provided, all the tags
                    from the repository will be ordered and compared.
                  properties:
                    extract:
                      description: Extract allows a capture group to be extracted from
                        the specified regular expression pattern, useful before tag
                        evaluation.
                      type: string
                    pattern:
                      description: Pattern specifies a regular expression pattern used
                        to filter for image tags.
                      type: string
                  type: object
                imageRepositoryRef:
                  description: ImageRepositoryRef points at the object specifying the
                    image being scanned
                  properties:
                    name:
                      description: Name of the referent
                      type: string
                  required:
                    - name
                  type: object
                policy:
                  description: Policy gives the particulars of the policy to be followed
                    in selecting the most recent image
                  properties:
                    alphabetical:
                      description: Alphabetical set of rules to use for alphabetical
                        ordering of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the letters of the alphabet as tags, ascending order
                            would select Z, and descending order would select A.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    numerical:
                      description: Numerical set of rules to use for numerical ordering
                        of the tags.
                      properties:
                        order:
                          default: asc
                          description: Order specifies the sorting order of the tags.
                            Given the integer values from 0 to 9 as tags, ascending
                            order would select 9, and descending order would select
                            0.
                          enum:
                            - asc
                            - desc
                          type: string
                      type: object
                    semver:
                      description: SemVer gives a semantic version range to check against
                        the tags available.
                      properties:
                        range:
                          description: Range gives a semver range for the image tag;
                            the highest version within the range that's a tag yields
                            the latest image.
                          type: string
                      required:
                        - range
                      type: object
                  type: object
              required:
                - imageRepositoryRef
                - policy
              type: object
            status:
              description: ImagePolicyStatus defines the observed state of ImagePolicy
              properties:
                conditions:
                  items:
                    description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    type FooStatus struct{     // Represents the observations of a
                    foo's current state.     // Known .status.conditions.type are:
                    \"Available\", \"Progressing\", and \"Degraded\"     // +patchMergeKey=type
                    \    // +patchStrategy=merge     // +listType=map     // +listMapKey=type
                    \    Conditions []metav1.Condition `json:\"conditions,omitempty\"
                    patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
                    \n     // other fields }"
                    properties:
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition
                          transitioned from one status to another. This should be when
                          the underlying condition changed.  If that is not known, then
                          using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating
                          details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation
                          that the condition was set based upon. For instance, if .metadata.generation
                          is currently 12, but the .status.conditions[x].observedGeneration
                          is 9, the condition is out of date with respect to the current
                          state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating
                          the reason for the condition's last transition. Producers
                          of specific condition types may define expected values and
                          meanings for this field, and whether the values are considered
                          a guaranteed API. The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                          --- Many .condition.type values are consistent across resources
                          like Available, but because arbitrary conditions can be useful
                          (see .node.status.conditions), the ability to deconflict is
                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                latestImage:
                  description: LatestImage gives the first in the list of images scanned
                    by the image repository, when filtered and ordered according to
                    the policy.
                  type: string
                observedGeneration:
                  format: int64
                  type: integer
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
