
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.2.5
  creationTimestamp: null
  name: configurations.terraform.core.oam.dev
spec:
  additionalPrinterColumns:
  - JSONPath: .status.state
    name: STATE
    type: string
  - JSONPath: .metadata.creationTimestamp
    name: AGE
    type: date
  group: terraform.core.oam.dev
  names:
    kind: Configuration
    listKind: ConfigurationList
    plural: configurations
    singular: configuration
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: Configuration is the Schema for the configurations 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: ConfigurationSpec defines the desired state of Configuration
          properties:
            JSON:
              description: JSON is the Terraform JSON syntax configuration
              type: string
            backend:
              description: Backend stores the state in a Kubernetes secret with locking
                done using a Lease resource. TODO(zzxwill) If a backend exists in
                HCL/JSON, this can be optional. Currently, if Backend is not set by
                users, it still will set by the controller, ignoring the settings
                in HCL/JSON backend
              properties:
                inClusterConfig:
                  description: InClusterConfig Used to authenticate to the cluster
                    from inside a pod. Only `true` is allowed
                  type: boolean
                secretSuffix:
                  description: 'SecretSuffix used when creating secrets. Secrets will
                    be named in the format: tfstate-{workspace}-{secretSuffix}'
                  type: string
              type: object
            hcl:
              description: HCL is the Terraform HCL type configuration
              type: string
            variable:
              type: object
              x-kubernetes-preserve-unknown-fields: true
            writeConnectionSecretToRef:
              description: WriteConnectionSecretToReference specifies the namespace
                and name of a Secret to which any connection details for this managed
                resource should be written. Connection details frequently include
                the endpoint, username, and password required to connect to the managed
                resource.
              properties:
                name:
                  description: Name of the secret.
                  type: string
                namespace:
                  description: Namespace of the secret.
                  type: string
              required:
              - name
              type: object
          type: object
        status:
          description: ConfigurationStatus defines the observed state of Configuration
          properties:
            message:
              type: string
            outputs:
              additionalProperties:
                properties:
                  type:
                    type: string
                  value:
                    type: string
                type: object
              type: object
            state:
              description: A ResourceState represents the status of a resource
              type: string
          type: object
      type: object
  version: v1beta1
  versions:
  - name: v1beta1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
