apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.0
  creationTimestamp: null
  name: serviceaccountkeys.iam.gcp.crossplane.io
spec:
  group: iam.gcp.crossplane.io
  names:
    categories:
    - crossplane
    - managed
    - gcp
    kind: ServiceAccountKey
    listKind: ServiceAccountKeyList
    plural: serviceaccountkeys
    singular: serviceaccountkey
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: READY
      type: string
    - jsonPath: .status.conditions[?(@.type=='Synced')].status
      name: SYNCED
      type: string
    - jsonPath: .status.atProvider.keyId
      name: KEY_ID
      type: string
    - jsonPath: .status.atProvider.validAfterTime
      name: CREATED_AT
      type: string
    - jsonPath: .status.atProvider.validBeforeTime
      name: EXPIRES_AT
      type: boolean
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ServiceAccountKey is a managed resource that represents a Google IAM Service Account Key.
        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: ServiceAccountKeySpec defines the desired state of a ServiceAccountKey.
            properties:
              deletionPolicy:
                description: DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. The "Delete" policy is the default when no policy is specified.
                enum:
                - Orphan
                - Delete
                type: string
              forProvider:
                description: ServiceAccountKeyParameters defines parameters for a desired IAM ServiceAccountKey https://cloud.google.com/iam/docs/reference/rest/v1/projects.serviceAccounts.keys
                properties:
                  keyAlgorithm:
                    description: 'KeyAlgorithm is an optional user-specified string that specifies the type of key and algorithm to use for the key. The default is currently a 2048-bit RSA key. However this may change in the future. Possible values:   "KEY_ALG_UNSPECIFIED" - Not specified.   "KEY_ALG_RSA_1024" - 1024-bit RSA key   "KEY_ALG_RSA_2048" - 2048-bit RSA key'
                    type: string
                  privateKeyType:
                    description: 'PrivateKeyType is an optional specification of the output format of the generated private key. The default value is TYPE_GOOGLE_CREDENTIALS_FILE, which corresponds to the Google Credentials File Format. Possible values:   "TYPE_UNSPECIFIED" - Not specified. Equivalent to TYPE_GOOGLE_CREDENTIALS_FILE.   "TYPE_PKCS12_FILE" - Private key stored in a RFC7292 PKCS #12 document. Password for the PKCS #12 document is "notasecret".   "TYPE_GOOGLE_CREDENTIALS_FILE" - Google Credentials File format.'
                    type: string
                  publicKeyType:
                    default: TYPE_RAW_PUBLIC_KEY
                    description: 'PublicKeyType is an optional specification of the output format for the associated public key. The default value is TYPE_RAW_PUBLIC_KEY. Possible values:   "TYPE_NONE" - Not specified. Public key is not retrieved via Google Cloud API.   "TYPE_X509_PEM_FILE" - X509 PEM format.   "TYPE_RAW_PUBLIC_KEY" - Raw public key.'
                    type: string
                  serviceAccount:
                    description: 'ServiceAccount: The RRN of the referred ServiceAccount RRN is the relative resource name as defined by Google Cloud API design docs here: https://cloud.google.com/apis/design/resource_names#relative_resource_name An example value for the ServiceAccount field is as follows: projects/<project-name>/serviceAccounts/perfect-test-sa@crossplane-playground.iam.gserviceaccount.com'
                    type: string
                  serviceAccountRef:
                    description: ServiceAccountRef references a ServiceAccount and retrieves its URI
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                    required:
                    - name
                    type: object
                  serviceAccountSelector:
                    description: ServiceAccountSelector selects a reference to a ServiceAccount
                    properties:
                      matchControllerRef:
                        description: MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels is selected.
                        type: object
                    type: object
                type: object
              providerConfigRef:
                description: ProviderConfigReference specifies how the provider that will be used to create, observe, update, and delete this managed resource should be configured.
                properties:
                  name:
                    description: Name of the referenced object.
                    type: string
                required:
                - name
                type: object
              providerRef:
                description: 'ProviderReference specifies the provider that will be used to create, observe, update, and delete this managed resource. Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`'
                properties:
                  name:
                    description: Name of the referenced object.
                    type: string
                required:
                - name
                type: object
              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
                - namespace
                type: object
            required:
            - forProvider
            type: object
          status:
            description: ServiceAccountKeyStatus represents the observed state of a ServiceAccountKey.
            properties:
              atProvider:
                description: ServiceAccountKeyObservation is used to show the observed state of the ServiceAccountKey resource on GCP. All fields in this structure should only be populated from GCP responses; any changes made to the k8s resource outside of the crossplane gcp controller will be ignored and overwritten.
                properties:
                  keyAlgorithm:
                    description: KeyAlgorithm is the key algorithm & possibly key size used for public/private key pair generation.
                    type: string
                  keyId:
                    description: KeyID is the generated unique & stable key id for the service account key.
                    type: string
                  keyOrigin:
                    description: 'KeyOrigin is the origin of the key. Possible values:   "ORIGIN_UNSPECIFIED" - Unspecified key origin.   "USER_PROVIDED" - Key is provided by user.   "GOOGLE_PROVIDED" - Key is provided by Google.'
                    type: string
                  keyType:
                    description: 'KeyType is the type of the key. Possible values:   "KEY_TYPE_UNSPECIFIED" - Unspecified key type.   "USER_MANAGED" - User-managed key (managed and rotated by the user).   "SYSTEM_MANAGED" - System-managed key (managed and rotated by Google).'
                    type: string
                  name:
                    description: 'Name is the resource name of the service account key in the following format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{external-name}. part of https://godoc.org/google.golang.org/genproto/googleapis/iam/admin/v1#ServiceAccountKey'
                    type: string
                  privateKeyType:
                    description: PrivateKeyType is the output format for the generated private key. Only set in keys.create responses. Determines the encoding for the private key stored in the "connection" secret.
                    type: string
                  validAfterTime:
                    description: ValidAfterTime is the timestamp after which this key can be used in RFC3339 UTC "Zulu" format.
                    type: string
                  validBeforeTime:
                    description: ValidBeforeTime is the timestamp before which this key can be used in RFC3339 UTC "Zulu" format.
                    type: string
                type: object
              conditions:
                description: Conditions of the resource.
                items:
                  description: A Condition that may apply to a resource.
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time this condition transitioned from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: A Message containing details about this condition's last transition from one status to another, if any.
                      type: string
                    reason:
                      description: A Reason for this condition's last transition from one status to another.
                      type: string
                    status:
                      description: Status of this condition; is it currently True, False, or Unknown?
                      type: string
                    type:
                      description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
