##
##   Copyright (c) 2020-2022 Intel Corporation.
##
##   Licensed under the Apache License, Version 2.0 (the "License");
##   you may not use this file except in compliance with the License.
##   You may obtain a copy of the License at
##
##       http://www.apache.org/licenses/LICENSE-2.0
##
##   Unless required by applicable law or agreed to in writing, software
##   distributed under the License is distributed on an "AS IS" BASIS,
##   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##   See the License for the specific language governing permissions and
##   limitations under the License.
##
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: taspolicies.telemetry.intel.com
spec:
  group: telemetry.intel.com
  names:
    kind: TASPolicy
    listKind: TASPolicyList
    plural: taspolicies
    singular: taspolicy
  scope: Namespaced
  versions:
    - name: v1alpha1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
            of an object. Servers should convert recognized schemas to the latest'
             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'
             type: string
           metadata:
             type: object
           spec:
             properties:
               strategies:
                 additionalProperties:
                   properties:
                     policyName:
                       type: string
                     rules:
                       items:
                         properties:
                           metricname:
                             type: string
                           operator:
                             type: string
                           target:
                             format: int64
                             type: integer
                         required:
                           - metricname
                           - operator
                         type: object
                       type: array
                   required:
                     - rules
                   type: object
                 type: object
             required:
               - strategies
             type: object
           status:
             properties:
               compliance:
                 type: string
               message:
                 type: string
             type: object
      subresources:
        status: {}
