apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: apis.capabilities.3scale.net
spec:
  group: capabilities.3scale.net
  names:
    kind: API
    listKind: APIList
    plural: apis
    singular: api
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      properties:
        spec:
          properties:
            description:
              type: string
            integrationMethod:
              properties:
                apicastHosted:
                  properties:
                    apiTestGetRequest:
                      type: string
                    authenticationSettings:
                      properties:
                        credentials:
                          properties:
                            apiKey:
                              properties:
                                authParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - authParameterName
                              - credentialsLocation
                              type: object
                            appID:
                              properties:
                                appIDParameterName:
                                  type: string
                                appKeyParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - appIDParameterName
                              - appKeyParameterName
                              - credentialsLocation
                              type: object
                            openIDConnector:
                              properties:
                                credentialsLocation:
                                  type: string
                                issuer:
                                  type: string
                              required:
                              - issuer
                              - credentialsLocation
                              type: object
                          type: object
                        errors:
                          properties:
                            authenticationFailed:
                              properties:
                                contentType:
                                  type: string
                                responseBody:
                                  type: string
                                responseCode:
                                  format: int64
                                  type: integer
                              required:
                              - responseCode
                              - contentType
                              - responseBody
                              type: object
                            authenticationMissing:
                              properties:
                                contentType:
                                  type: string
                                responseBody:
                                  type: string
                                responseCode:
                                  format: int64
                                  type: integer
                              required:
                              - responseCode
                              - contentType
                              - responseBody
                              type: object
                          required:
                          - authenticationFailed
                          - authenticationMissing
                          type: object
                        hostHeader:
                          type: string
                        secretToken:
                          type: string
                      required:
                      - hostHeader
                      - secretToken
                      - credentials
                      - errors
                      type: object
                    mappingRulesSelector:
                      properties:
                        matchExpressions:
                          items:
                            properties:
                              key:
                                type: string
                              operator:
                                type: string
                              values:
                                type: array
                          type: array
                        matchLabels:
                          type: object
                      type: object
                    policiesSelector:
                      properties:
                        matchExpressions:
                          items:
                            properties:
                              key:
                                type: string
                              operator:
                                type: string
                              values:
                                type: array
                          type: array
                        matchLabels:
                          type: object
                      type: object
                    privateBaseURL:
                      type: string
                  required:
                  - privateBaseURL
                  - apiTestGetRequest
                  - authenticationSettings
                  type: object
                apicastOnPrem:
                  properties:
                    apiTestGetRequest:
                      type: string
                    authenticationSettings:
                      properties:
                        credentials:
                          properties:
                            apiKey:
                              properties:
                                authParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - authParameterName
                              - credentialsLocation
                              type: object
                            appID:
                              properties:
                                appIDParameterName:
                                  type: string
                                appKeyParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - appIDParameterName
                              - appKeyParameterName
                              - credentialsLocation
                              type: object
                            openIDConnector:
                              properties:
                                credentialsLocation:
                                  type: string
                                issuer:
                                  type: string
                              required:
                              - issuer
                              - credentialsLocation
                              type: object
                          type: object
                        errors:
                          properties:
                            authenticationFailed:
                              properties:
                                contentType:
                                  type: string
                                responseBody:
                                  type: string
                                responseCode:
                                  format: int64
                                  type: integer
                              required:
                              - responseCode
                              - contentType
                              - responseBody
                              type: object
                            authenticationMissing:
                              properties:
                                contentType:
                                  type: string
                                responseBody:
                                  type: string
                                responseCode:
                                  format: int64
                                  type: integer
                              required:
                              - responseCode
                              - contentType
                              - responseBody
                              type: object
                          required:
                          - authenticationFailed
                          - authenticationMissing
                          type: object
                        hostHeader:
                          type: string
                        secretToken:
                          type: string
                      required:
                      - hostHeader
                      - secretToken
                      - credentials
                      - errors
                      type: object
                    mappingRulesSelector:
                      properties:
                        matchExpressions:
                          items:
                            properties:
                              key:
                                type: string
                              operator:
                                type: string
                              values:
                                type: array
                          type: array
                        matchLabels:
                          type: object
                      type: object
                    policiesSelector:
                      properties:
                        matchExpressions:
                          items:
                            properties:
                              key:
                                type: string
                              operator:
                                type: string
                              values:
                                type: array
                          type: array
                        matchLabels:
                          type: object
                      type: object
                    privateBaseURL:
                      type: string
                    productionPublicBaseURL:
                      type: string
                    stagingPublicBaseURL:
                      type: string
                  required:
                  - privateBaseURL
                  - apiTestGetRequest
                  - authenticationSettings
                  - stagingPublicBaseURL
                  - productionPublicBaseURL
                  type: object
                codePlugin:
                  properties:
                    authenticationSettings:
                      properties:
                        credentials:
                          properties:
                            apiKey:
                              properties:
                                authParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - authParameterName
                              - credentialsLocation
                              type: object
                            appID:
                              properties:
                                appIDParameterName:
                                  type: string
                                appKeyParameterName:
                                  type: string
                                credentialsLocation:
                                  type: string
                              required:
                              - appIDParameterName
                              - appKeyParameterName
                              - credentialsLocation
                              type: object
                            openIDConnector:
                              properties:
                                credentialsLocation:
                                  type: string
                                issuer:
                                  type: string
                              required:
                              - issuer
                              - credentialsLocation
                              type: object
                          type: object
                      required:
                      - credentials
                      type: object
                  required:
                  - authenticationSettings
                  type: object
              type: object
            metricSelector:
              properties:
                matchExpressions:
                  items:
                    properties:
                      key:
                        type: string
                      operator:
                        type: string
                      values:
                        type: array
                  type: array
                matchLabels:
                  type: object
              type: object
            planSelector:
              properties:
                matchExpressions:
                  items:
                    properties:
                      key:
                        type: string
                      operator:
                        type: string
                      values:
                        type: array
                  type: array
                matchLabels:
                  type: object
              type: object
          required:
          - description
          - integrationMethod
          type: object
        status:
          type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
