---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: null
  name: cloudmemorystoreinstances.cache.gcp.crossplane.io
spec:
  group: cache.gcp.crossplane.io
  names:
    categories:
    - crossplane
    - managed
    - gcp
    kind: CloudMemorystoreInstance
    listKind: CloudMemorystoreInstanceList
    plural: cloudmemorystoreinstances
    singular: cloudmemorystoreinstance
  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.state
      name: STATE
      type: string
    - jsonPath: .spec.forProvider.redisVersion
      name: VERSION
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: A CloudMemorystoreInstance is a managed resource that represents
          a Google Cloud Memorystore instance.
        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: A CloudMemorystoreInstanceSpec defines the desired state
              of a CloudMemorystoreInstance.
            properties:
              deletionPolicy:
                default: Delete
                description: DeletionPolicy specifies what will happen to the underlying
                  external when this managed resource is deleted - either "Delete"
                  or "Orphan" the external resource.
                enum:
                - Orphan
                - Delete
                type: string
              forProvider:
                description: 'CloudMemorystoreInstanceParameters define the desired
                  state of an Google Cloud Memorystore instance. Most fields map directly
                  to an Instance: https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance'
                properties:
                  alternativeLocationId:
                    description: Only applicable to STANDARD_HA tier which protects
                      the instance against zonal failures by provisioning it across
                      two zones. If provided, it must be a different zone from the
                      one provided in [location_id].
                    type: string
                  authEnabled:
                    description: 'AuthEnabled: Optional. Indicates whether OSS Redis
                      AUTH is enabled for the instance. If set to "true" AUTH is enabled
                      on the instance. Default value is "false" meaning AUTH is disabled.'
                    type: boolean
                  authorizedNetwork:
                    description: The full name of the Google Compute Engine [network](/compute/docs/networks-and-firewalls#networks)
                      to which the instance is connected. If left unspecified, the
                      `default` network will be used.
                    type: string
                  connectMode:
                    description: "ConnectMode: Optional. The network connect mode
                      of the Redis instance. If not provided, the connect mode defaults
                      to DIRECT_PEERING. \n Possible values: \"CONNECT_MODE_UNSPECIFIED\"
                      - Not set. \"DIRECT_PEERING\" - Connect via direct peering to
                      the Memorystore for Redis hosted service. \"PRIVATE_SERVICE_ACCESS\"
                      - Connect your Memorystore for Redis instance using Private
                      Services Access. Private services access provides an IP address
                      range for multiple Google Cloud services, including Memorystore."
                    enum:
                    - DIRECT_PEERING
                    - PRIVATE_SERVICE_ACCESS
                    type: string
                  displayName:
                    description: An arbitrary and optional user-provided name for
                      the instance.
                    type: string
                  labels:
                    additionalProperties:
                      type: string
                    description: Resource labels to represent user provided metadata
                    type: object
                  locationId:
                    description: The zone where the instance will be provisioned.
                      If not provided, the service will choose a zone for the instance.
                      For STANDARD_HA tier, instances will be created across two zones
                      for protection against zonal failures. If [alternative_location_id]
                      is also provided, it must be different from [location_id].
                    type: string
                  memorySizeGb:
                    description: Redis memory size in GiB.
                    format: int64
                    type: integer
                  redisConfigs:
                    additionalProperties:
                      type: string
                    description: "Redis configuration parameters, according to http://redis.io/topics/config.
                      Currently, the only supported parameters are: \n Redis 3.2 and
                      above: \n *   maxmemory-policy *   notify-keyspace-events \n
                      Redis 4.0 and above: \n *   activedefrag *   lfu-log-factor
                      *   lfu-decay-time"
                    type: object
                  redisVersion:
                    description: "The version of Redis software. If not provided,
                      latest supported version will be used. Updating the version
                      will perform an upgrade/downgrade to the new version. Currently,
                      the supported values are: \n *   `REDIS_4_0` for Redis 4.0 compatibility
                      (default) *   `REDIS_3_2` for Redis 3.2 compatibility"
                    type: string
                  region:
                    description: Region in which to create this Cloud Memorystore
                      cluster.
                    type: string
                  reservedIpRange:
                    description: The CIDR range of internal addresses that are reserved
                      for this instance. If not provided, the service will choose
                      an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29.
                      Ranges must be unique and non-overlapping with existing subnets
                      in an authorized network.
                    type: string
                  tier:
                    description: Tier specifies the replication level of the Redis
                      cluster. BASIC provides a single Redis instance with no high
                      availability. STANDARD_HA provides a cluster of two Redis instances
                      in distinct availability zones. https://cloud.google.com/memorystore/docs/redis/redis-tiers
                    enum:
                    - BASIC
                    - STANDARD_HA
                    type: string
                required:
                - memorySizeGb
                - region
                - tier
                type: object
              providerConfigRef:
                default:
                  name: default
                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
              publishConnectionDetailsTo:
                description: PublishConnectionDetailsTo specifies the connection secret
                  config which contains a name, metadata and a reference to secret
                  store config 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:
                  configRef:
                    default:
                      name: default
                    description: SecretStoreConfigRef specifies which secret store
                      config should be used for this ConnectionSecret.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                    required:
                    - name
                    type: object
                  metadata:
                    description: Metadata is the metadata for connection secret.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: Annotations are the annotations to be added to
                          connection secret. - For Kubernetes secrets, this will be
                          used as "metadata.annotations". - It is up to Secret Store
                          implementation for others store types.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: Labels are the labels/tags to be added to connection
                          secret. - For Kubernetes secrets, this will be used as "metadata.labels".
                          - It is up to Secret Store implementation for others store
                          types.
                        type: object
                      type:
                        description: Type is the SecretType for the connection secret.
                          - Only valid for Kubernetes Secret Stores.
                        type: string
                    type: object
                  name:
                    description: Name is the name of the connection secret.
                    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. This field is planned to be replaced in a future
                  release in favor of PublishConnectionDetailsTo. Currently, both
                  could be set independently and connection details would be published
                  to both without affecting each other.
                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: A CloudMemorystoreInstanceStatus represents the observed
              state of a CloudMemorystoreInstance.
            properties:
              atProvider:
                description: CloudMemorystoreInstanceObservation is used to show the
                  observed state of the CloudMemorystore resource on GCP.
                properties:
                  createTime:
                    description: The time the instance was created.
                    format: date-time
                    type: string
                  currentLocationId:
                    description: The current zone where the Redis endpoint is placed.
                      For Basic Tier instances, this will always be the same as the
                      [location_id] provided by the user at creation time. For Standard
                      Tier instances, this can be either [location_id] or [alternative_location_id]
                      and can change after a failover event.
                    type: string
                  host:
                    description: Hostname or IP address of the exposed Redis endpoint
                      used by clients to connect to the service.
                    type: string
                  name:
                    description: "Unique name of the resource in this scope including
                      project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
                      \n Note: Redis instances are managed and addressed at regional
                      level so location_id here refers to a GCP region; however, users
                      may choose which specific zone (or collection of zones for cross-zone
                      instances) an instance should be provisioned in. Refer to [location_id]
                      and [alternative_location_id] fields for more details."
                    type: string
                  persistenceIamIdentity:
                    description: Cloud IAM identity used by import / export operations
                      to transfer data to/from Cloud Storage. Format is "serviceAccount:<service_account_email>".
                      The value may change over time for a given instance so should
                      be checked before each import/export operation.
                    type: string
                  port:
                    description: The port number of the exposed Redis endpoint.
                    format: int64
                    type: integer
                  state:
                    description: "State: Output only. The current state of this instance.
                      \n Possible values: \"STATE_UNSPECIFIED\" - Not set. \"CREATING\"
                      - Redis instance is being created. \"READY\" - Redis instance
                      has been created and is fully usable. \"UPDATING\" - Redis instance
                      configuration is being updated. Certain kinds of updates may
                      cause the instance to become unusable while the update is in
                      progress. \"DELETING\" - Redis instance is being deleted. \"REPAIRING\"
                      - Redis instance is being repaired and may be unusable. \"MAINTENANCE\"
                      - Maintenance is being performed on this Redis instance. \"IMPORTING\"
                      - Redis instance is importing data (availability may be affected).
                      \"FAILING_OVER\" - Redis instance is failing over (availability
                      may be affected)."
                    type: string
                  statusMessage:
                    description: Additional information about the current status of
                      this instance, if available.
                    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: []
