apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.12.0
  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: 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
                  namespace:
                    description: Namespace of the referent, when not specified it
                      acts as LocalObjectReference.
                    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:
            default:
              observedGeneration: -1
            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,
                    \n 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: v1beta2
    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
                  namespace:
                    description: Namespace of the referent, when not specified it
                      acts as LocalObjectReference.
                    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:
            default:
              observedGeneration: -1
            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,
                    \n 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
              observedPreviousImage:
                description: ObservedPreviousImage is the observed previous LatestImage.
                  It is used to keep track of the previous and current images.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}