---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  name: resourcetrackers.core.oam.dev
spec:
  group: core.oam.dev
  names:
    categories:
    - oam
    kind: ResourceTracker
    listKind: ResourceTrackerList
    plural: resourcetrackers
    shortNames:
    - rt
    singular: resourcetracker
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.type
      name: TYPE
      type: string
    - jsonPath: .metadata.labels['app\.oam\.dev\/name']
      name: APP
      type: string
    - jsonPath: .metadata.labels['app\.oam\.dev\/namespace']
      name: APP-NS
      type: string
    - jsonPath: .spec.applicationGeneration
      name: APP-GEN
      type: number
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: An ResourceTracker represents a tracker for track cross namespace
          resources
        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: ResourceTrackerSpec define the spec of resourceTracker
            properties:
              applicationGeneration:
                format: int64
                type: integer
              compression:
                description: ResourceTrackerCompression represents the compressed
                  components in ResourceTracker.
                properties:
                  data:
                    type: string
                  type:
                    description: Type the compression type
                    type: string
                type: object
              managedResources:
                items:
                  description: ManagedResource define the resource to be managed by
                    ResourceTracker
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    cluster:
                      type: string
                    component:
                      type: string
                    creator:
                      type: string
                    deleted:
                      description: Deleted marks the resource to be deleted
                      type: boolean
                    env:
                      type: string
                    fieldPath:
                      description: 'If referring to a piece of an object instead of
                        an entire object, this string should contain a valid JSON/Go
                        field access statement, such as desiredState.manifest.containers[2].
                        For example, if the object reference is to a container within
                        a pod, this would take on a value like: "spec.containers{name}"
                        (where "name" refers to the name of the container that triggered
                        the event) or if no container name is specified "spec.containers[2]"
                        (container with index 2 in this pod). This syntax is chosen
                        only to have some well-defined way of referencing a part of
                        an object. TODO: this design is not final and this field is
                        subject to change in the future.'
                      type: string
                    kind:
                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                      type: string
                    raw:
                      type: object
                      
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                      type: string
                    skipGC:
                      description: SkipGC marks the resource to skip gc
                      type: boolean
                    trait:
                      type: string
                    uid:
                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              type:
                description: ResourceTrackerType defines the type of resourceTracker
                type: string
            required:
            - applicationGeneration
            type: object
          status:
            description: ResourceTrackerStatus define the status of resourceTracker
              For backward-compatibility
            properties:
              trackedResources:
                description: Deprecated
                items:
                  description: ClusterObjectReference defines the object reference
                    with cluster.
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    cluster:
                      type: string
                    creator:
                      type: string
                    fieldPath:
                      description: 'If referring to a piece of an object instead of
                        an entire object, this string should contain a valid JSON/Go
                        field access statement, such as desiredState.manifest.containers[2].
                        For example, if the object reference is to a container within
                        a pod, this would take on a value like: "spec.containers{name}"
                        (where "name" refers to the name of the container that triggered
                        the event) or if no container name is specified "spec.containers[2]"
                        (container with index 2 in this pod). This syntax is chosen
                        only to have some well-defined way of referencing a part of
                        an object. TODO: this design is not final and this field is
                        subject to change in the future.'
                      type: string
                    kind:
                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                      type: string
                    uid:
                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
