---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.17.3
  name: kubernetesagents.agent.observability.pingcap.com
spec:
  group: agent.observability.pingcap.com
  names:
    kind: KubernetesAgent
    listKind: KubernetesAgentList
    plural: kubernetesagents
    singular: kubernetesagent
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.kubernetesClusterName
      name: Cluster
      type: string
    - jsonPath: .status.phase
      name: Phase
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v2
    schema:
      openAPIV3Schema:
        description: KubernetesAgent is the Schema for the kubernetesagents 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: KubernetesAgentSpec defines the desired state of KubernetesAgent.
            properties:
              ack:
                properties:
                  accountId:
                    type: string
                  assumeExternalId:
                    type: string
                  assumeRoleArn:
                    type: string
                  providerConfigRef:
                    description: A Reference to a named object.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  securityGroupId:
                    type: string
                  vpcId:
                    type: string
                required:
                - assumeExternalId
                - assumeRoleArn
                - providerConfigRef
                - securityGroupId
                - vpcId
                type: object
              aks:
                properties:
                  network:
                    type: string
                  podSubnetID:
                    type: string
                  providerConfigRef:
                    description: A Reference to a named object.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  resourceGroup:
                    type: string
                  subnetID:
                    type: string
                  subscriptionID:
                    type: string
                required:
                - network
                - resourceGroup
                - subnetID
                - subscriptionID
                type: object
              eks:
                properties:
                  accountId:
                    type: string
                  assumeExternalId:
                    type: string
                  assumeRoleArn:
                    type: string
                  nodeSubnetIDs:
                    items:
                      type: string
                    type: array
                  providerConfigRef:
                    description: A Reference to a named object.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  securityGroupId:
                    type: string
                  vpcId:
                    type: string
                required:
                - assumeExternalId
                - assumeRoleArn
                - nodeSubnetIDs
                - providerConfigRef
                - securityGroupId
                - vpcId
                type: object
              gke:
                properties:
                  network:
                    type: string
                  project:
                    type: string
                  subnets:
                    items:
                      type: string
                    type: array
                required:
                - network
                - project
                - subnets
                type: object
              kubernetesClusterName:
                type: string
              o11y:
                properties:
                  applicationId:
                    type: string
                  bizType:
                    type: string
                  tenantId:
                    type: string
                required:
                - applicationId
                - bizType
                - tenantId
                type: object
            required:
            - kubernetesClusterName
            - o11y
            type: object
          status:
            description: KubernetesAgentStatus defines the observed state of KubernetesAgent.
            properties:
              phase:
                type: string
            required:
            - phase
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
