apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cnrm.cloud.google.com/version: 0.0.0-dev
  creationTimestamp: null
  labels:
    cnrm.cloud.google.com/managed-by-kcc: "true"
    cnrm.cloud.google.com/system: "true"
  name: gkebackuprestores.gkebackup.cnrm.cloud.google.com
spec:
  group: gkebackup.cnrm.cloud.google.com
  names:
    categories:
    - gcp
    kind: GKEBackupRestore
    listKind: GKEBackupRestoreList
    plural: gkebackuprestores
    shortNames:
    - gcpgkebackuprestore
    - gcpgkebackuprestores
    singular: gkebackuprestore
  preserveUnknownFields: false
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - description: When 'True', the most recent reconcile of the resource succeeded
      jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - description: The reason for the value in 'Ready'
      jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Status
      type: string
    - description: The last transition time for the value in 'Status'
      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
      name: Status Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: GKEBackupRestore is the Schema for the GKEBackupRestore 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: GKEBackupRestoreSpec defines the desired state of GKEBackupRestore
            properties:
              backupRef:
                description: Required. Immutable. A reference to the [Backup][google.cloud.gkebackup.v1.Backup]
                  used as the source from which this Restore will restore. Note that
                  this Backup must be a sub-resource of the RestorePlan's [backup_plan][google.cloud.gkebackup.v1.RestorePlan.backup_plan].
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: A reference to an externally managed GKEBackupBackup
                      resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/backups/{{backupID}}".
                    type: string
                  name:
                    description: The name of a GKEBackupBackup resource.
                    type: string
                  namespace:
                    description: The namespace of a GKEBackupBackup resource.
                    type: string
                type: object
              description:
                description: User specified descriptive string for this Restore.
                type: string
              filter:
                description: Optional. Immutable. Filters resources for `Restore`.
                  If not specified, the scope of the restore will remain the same
                  as defined in the `RestorePlan`. If this is specified, and no resources
                  are matched by the `inclusion_filters` or everything is excluded
                  by the `exclusion_filters`, nothing will be restored. This filter
                  can only be specified if the value of [namespaced_resource_restore_mode][google.cloud.gkebackup.v1.RestoreConfig.namespaced_resource_restore_mode]
                  is set to `MERGE_SKIP_ON_CONFLICT`, `MERGE_REPLACE_VOLUME_ON_CONFLICT`
                  or `MERGE_REPLACE_ON_CONFLICT`.
                properties:
                  exclusionFilters:
                    description: Optional. Excludes resources from restoration. If
                      specified, a resource will not be restored if it matches any
                      `ResourceSelector` of the `exclusion_filters`.
                    items:
                      properties:
                        groupKind:
                          description: Optional. Selects resources using their Kubernetes
                            GroupKinds. If specified, only resources of provided GroupKind
                            will be selected.
                          properties:
                            resourceGroup:
                              description: 'Optional. API group string of a Kubernetes
                                resource, e.g. "apiextensions.k8s.io", "storage.k8s.io",
                                etc. Note: use empty string for core API group'
                              type: string
                            resourceKind:
                              description: Optional. Kind of a Kubernetes resource,
                                must be in UpperCamelCase (PascalCase) and singular
                                form. E.g. "CustomResourceDefinition", "StorageClass",
                                etc.
                              type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Optional. Selects resources using Kubernetes
                            [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
                            If specified, a resource will be selected if and only
                            if the resource has all of the provided labels and all
                            the label values match.
                          type: object
                        name:
                          description: Optional. Selects resources using their resource
                            names. If specified, only resources with the provided
                            name will be selected.
                          type: string
                        namespace:
                          description: Optional. Selects resources using their namespaces.
                            This only applies to namespace scoped resources and cannot
                            be used for selecting cluster scoped resources. If specified,
                            only resources in the provided namespace will be selected.
                            If not specified, the filter will apply to both cluster
                            scoped and namespace scoped resources (e.g. name or label).
                            The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace)
                            resource itself will be restored if and only if any resources
                            within the namespace are restored.
                          type: string
                      type: object
                    type: array
                  inclusionFilters:
                    description: Optional. Selects resources for restoration. If specified,
                      only resources which match `inclusion_filters` will be selected
                      for restoration. A resource will be selected if it matches any
                      `ResourceSelector` of the `inclusion_filters`.
                    items:
                      properties:
                        groupKind:
                          description: Optional. Selects resources using their Kubernetes
                            GroupKinds. If specified, only resources of provided GroupKind
                            will be selected.
                          properties:
                            resourceGroup:
                              description: 'Optional. API group string of a Kubernetes
                                resource, e.g. "apiextensions.k8s.io", "storage.k8s.io",
                                etc. Note: use empty string for core API group'
                              type: string
                            resourceKind:
                              description: Optional. Kind of a Kubernetes resource,
                                must be in UpperCamelCase (PascalCase) and singular
                                form. E.g. "CustomResourceDefinition", "StorageClass",
                                etc.
                              type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Optional. Selects resources using Kubernetes
                            [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
                            If specified, a resource will be selected if and only
                            if the resource has all of the provided labels and all
                            the label values match.
                          type: object
                        name:
                          description: Optional. Selects resources using their resource
                            names. If specified, only resources with the provided
                            name will be selected.
                          type: string
                        namespace:
                          description: Optional. Selects resources using their namespaces.
                            This only applies to namespace scoped resources and cannot
                            be used for selecting cluster scoped resources. If specified,
                            only resources in the provided namespace will be selected.
                            If not specified, the filter will apply to both cluster
                            scoped and namespace scoped resources (e.g. name or label).
                            The [Namespace](https://pkg.go.dev/k8s.io/api/core/v1#Namespace)
                            resource itself will be restored if and only if any resources
                            within the namespace are restored.
                          type: string
                      type: object
                    type: array
                type: object
              labels:
                additionalProperties:
                  type: string
                description: A set of custom labels supplied by user.
                type: object
              resourceID:
                description: The GKEBackupRestore name. If not given, the metadata.name
                  will be used.
                type: string
              restorePlanRef:
                description: Required. The RestorePlan from which this Restore is
                  created.
                oneOf:
                - not:
                    required:
                    - external
                  required:
                  - name
                - not:
                    anyOf:
                    - required:
                      - name
                    - required:
                      - namespace
                  required:
                  - external
                properties:
                  external:
                    description: A reference to an externally managed GKEBackupRestorePlan
                      resource. Should be in the format "projects/{{projectID}}/locations/{{location}}/restorePlans/{{restoreplanID}}".
                    type: string
                  name:
                    description: The name of a GKEBackupRestorePlan resource.
                    type: string
                  namespace:
                    description: The namespace of a GKEBackupRestorePlan resource.
                    type: string
                type: object
              volumeDataRestorePolicyOverrides:
                description: Optional. Immutable. Overrides the volume data restore
                  policies selected in the Restore Config for override-scoped resources.
                items:
                  properties:
                    policy:
                      description: Required. The VolumeDataRestorePolicy to apply
                        when restoring volumes in scope.
                      type: string
                    selectedPVCs:
                      description: A list of PVCs to apply the policy override to.
                      properties:
                        namespacedNames:
                          description: Optional. A list of namespaced Kubernetes resources.
                          items:
                            properties:
                              name:
                                description: Optional. The name of the Kubernetes
                                  resource.
                                type: string
                              namespace:
                                description: Optional. The Namespace of the Kubernetes
                                  resource.
                                type: string
                            type: object
                          type: array
                      type: object
                  type: object
                type: array
            required:
            - restorePlanRef
            type: object
          status:
            description: GKEBackupRestoreStatus defines the config connector machine
              state of GKEBackupRestore
            properties:
              conditions:
                description: Conditions represent the latest available observations
                  of the object's current state.
                items:
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      type: string
                    message:
                      description: Human-readable message indicating details about
                        last transition.
                      type: string
                    reason:
                      description: Unique, one-word, CamelCase reason for the condition's
                        last transition.
                      type: string
                    status:
                      description: Status is the status of the condition. Can be True,
                        False, Unknown.
                      type: string
                    type:
                      description: Type is the type of the condition.
                      type: string
                  type: object
                type: array
              externalRef:
                description: A unique specifier for the GKEBackupRestore resource
                  in GCP.
                type: string
              observedGeneration:
                description: ObservedGeneration is the generation of the resource
                  that was most recently observed by the Config Connector controller.
                  If this is equal to metadata.generation, then that means that the
                  current reported status reflects the most recent desired state of
                  the resource.
                format: int64
                type: integer
              observedState:
                description: ObservedState is the state of the resource as most recently
                  observed in GCP.
                properties:
                  cluster:
                    description: |-
                      Output only. The target cluster into which this Restore will restore data.
                       Valid formats:

                         - `projects/*/locations/*/clusters/*`
                         - `projects/*/zones/*/clusters/*`

                       Inherited from parent RestorePlan's
                       [cluster][google.cloud.gkebackup.v1.RestorePlan.cluster] value.
                    type: string
                  completeTime:
                    description: Output only. Timestamp of when the restore operation
                      completed.
                    type: string
                  createTime:
                    description: Output only. The timestamp when this Restore resource
                      was created.
                    type: string
                  etag:
                    description: 'Output only. `etag` is used for optimistic concurrency
                      control as a way to help prevent simultaneous updates of a restore
                      from overwriting each other. It is strongly suggested that systems
                      make use of the `etag` in the read-modify-write cycle to perform
                      restore updates in order to avoid race conditions: An `etag`
                      is returned in the response to `GetRestore`, and systems are
                      expected to put that etag in the request to `UpdateRestore`
                      or `DeleteRestore` to ensure that their change will be applied
                      to the same version of the resource.'
                    type: string
                  resourcesExcludedCount:
                    description: Output only. Number of resources excluded during
                      the restore execution.
                    format: int32
                    type: integer
                  resourcesFailedCount:
                    description: Output only. Number of resources that failed to be
                      restored during the restore execution.
                    format: int32
                    type: integer
                  resourcesRestoredCount:
                    description: Output only. Number of resources restored during
                      the restore execution.
                    format: int32
                    type: integer
                  restoreConfig:
                    description: Output only. Configuration of the Restore.  Inherited
                      from parent RestorePlan's [restore_config][google.cloud.gkebackup.v1.RestorePlan.restore_config].
                    properties:
                      allNamespaces:
                        description: Restore all namespaced resources in the Backup
                          if set to "True". Specifying this field to "False" is an
                          error.
                        type: boolean
                      clusterResourceConflictPolicy:
                        description: Optional. Defines the behavior for handling the
                          situation where cluster-scoped resources being restored
                          already exist in the target cluster. This MUST be set to
                          a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED
                          if [cluster_resource_restore_scope][google.cloud.gkebackup.v1.RestoreConfig.cluster_resource_restore_scope]
                          is not empty.
                        type: string
                      clusterResourceRestoreScope:
                        description: Optional. Identifies the cluster-scoped resources
                          to restore from the Backup. Not specifying it means NO cluster
                          resource will be restored.
                        properties:
                          allGroupKinds:
                            description: Optional. If True, all valid cluster-scoped
                              resources will be restored. Mutually exclusive to any
                              other field in the message.
                            type: boolean
                          excludedGroupKinds:
                            description: Optional. A list of cluster-scoped resource
                              group kinds to NOT restore from the backup. If specified,
                              all valid cluster-scoped resources will be restored
                              except for those specified in the list. Mutually exclusive
                              to any other field in the message.
                            items:
                              properties:
                                resourceGroup:
                                  description: 'Optional. API group string of a Kubernetes
                                    resource, e.g. "apiextensions.k8s.io", "storage.k8s.io",
                                    etc. Note: use empty string for core API group'
                                  type: string
                                resourceKind:
                                  description: Optional. Kind of a Kubernetes resource,
                                    must be in UpperCamelCase (PascalCase) and singular
                                    form. E.g. "CustomResourceDefinition", "StorageClass",
                                    etc.
                                  type: string
                              type: object
                            type: array
                          noGroupKinds:
                            description: Optional. If True, no cluster-scoped resources
                              will be restored. This has the same restore scope as
                              if the message is not defined. Mutually exclusive to
                              any other field in the message.
                            type: boolean
                          selectedGroupKinds:
                            description: Optional. A list of cluster-scoped resource
                              group kinds to restore from the backup. If specified,
                              only the selected resources will be restored. Mutually
                              exclusive to any other field in the message.
                            items:
                              properties:
                                resourceGroup:
                                  description: 'Optional. API group string of a Kubernetes
                                    resource, e.g. "apiextensions.k8s.io", "storage.k8s.io",
                                    etc. Note: use empty string for core API group'
                                  type: string
                                resourceKind:
                                  description: Optional. Kind of a Kubernetes resource,
                                    must be in UpperCamelCase (PascalCase) and singular
                                    form. E.g. "CustomResourceDefinition", "StorageClass",
                                    etc.
                                  type: string
                              type: object
                            type: array
                        type: object
                      excludedNamespaces:
                        description: A list of selected namespaces excluded from restoration.
                          All namespaces except those in this list will be restored.
                        properties:
                          namespaces:
                            description: Optional. A list of Kubernetes Namespaces
                            items:
                              type: string
                            type: array
                        type: object
                      namespacedResourceRestoreMode:
                        description: Optional. Defines the behavior for handling the
                          situation where sets of namespaced resources being restored
                          already exist in the target cluster. This MUST be set to
                          a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED.
                        type: string
                      noNamespaces:
                        description: Do not restore any namespaced resources if set
                          to "True". Specifying this field to "False" is not allowed.
                        type: boolean
                      restoreOrder:
                        description: Optional. RestoreOrder contains custom ordering
                          to use on a Restore.
                        properties:
                          groupKindDependencies:
                            description: Optional. Contains a list of group kind dependency
                              pairs provided by the customer, that is used by Backup
                              for GKE to generate a group kind restore order.
                            items:
                              properties:
                                requiring:
                                  description: Required. The requiring group kind
                                    requires that the other group kind be restored
                                    first.
                                  properties:
                                    resourceGroup:
                                      description: 'Optional. API group string of
                                        a Kubernetes resource, e.g. "apiextensions.k8s.io",
                                        "storage.k8s.io", etc. Note: use empty string
                                        for core API group'
                                      type: string
                                    resourceKind:
                                      description: Optional. Kind of a Kubernetes
                                        resource, must be in UpperCamelCase (PascalCase)
                                        and singular form. E.g. "CustomResourceDefinition",
                                        "StorageClass", etc.
                                      type: string
                                  type: object
                                satisfying:
                                  description: Required. The satisfying group kind
                                    must be restored first in order to satisfy the
                                    dependency.
                                  properties:
                                    resourceGroup:
                                      description: 'Optional. API group string of
                                        a Kubernetes resource, e.g. "apiextensions.k8s.io",
                                        "storage.k8s.io", etc. Note: use empty string
                                        for core API group'
                                      type: string
                                    resourceKind:
                                      description: Optional. Kind of a Kubernetes
                                        resource, must be in UpperCamelCase (PascalCase)
                                        and singular form. E.g. "CustomResourceDefinition",
                                        "StorageClass", etc.
                                      type: string
                                  type: object
                              required:
                              - requiring
                              - satisfying
                              type: object
                            type: array
                        type: object
                      selectedApplications:
                        description: A list of selected ProtectedApplications to restore.
                          The listed ProtectedApplications and all the resources to
                          which they refer will be restored.
                        properties:
                          namespacedNames:
                            description: Optional. A list of namespaced Kubernetes
                              resources.
                            items:
                              properties:
                                name:
                                  description: Optional. The name of the Kubernetes
                                    resource.
                                  type: string
                                namespace:
                                  description: Optional. The Namespace of the Kubernetes
                                    resource.
                                  type: string
                              type: object
                            type: array
                        type: object
                      selectedNamespaces:
                        description: A list of selected Namespaces to restore from
                          the Backup. The listed Namespaces and all resources contained
                          in them will be restored.
                        properties:
                          namespaces:
                            description: Optional. A list of Kubernetes Namespaces
                            items:
                              type: string
                            type: array
                        type: object
                      substitutionRules:
                        description: Optional. A list of transformation rules to be
                          applied against Kubernetes resources as they are selected
                          for restoration from a Backup. Rules are executed in order
                          defined - this order matters, as changes made by a rule
                          may impact the filtering logic of subsequent rules. An empty
                          list means no substitution will occur.
                        items:
                          properties:
                            newValue:
                              description: Optional. This is the new value to set
                                for any fields that pass the filtering and selection
                                criteria. To remove a value from a Kubernetes resource,
                                either leave this field unspecified, or set it to
                                the empty string ("").
                              type: string
                            originalValuePattern:
                              description: Optional. (Filtering parameter) This is
                                a [regular expression] (https://en.wikipedia.org/wiki/Regular_expression)
                                that is compared against the fields matched by the
                                target_json_path expression (and must also have passed
                                the previous filters). Substitution will not be performed
                                against fields whose value does not match this expression.
                                If this field is NOT specified, then ALL fields matched
                                by the target_json_path expression will undergo substitution.
                                Note that an empty (e.g., "", rather than unspecified)
                                value for this field will only match empty fields.
                              type: string
                            targetGroupKinds:
                              description: Optional. (Filtering parameter) Any resource
                                subject to substitution must belong to one of the
                                listed "types". If this field is not provided, no
                                type filtering will be performed (all resources of
                                all types matching previous filtering parameters will
                                be candidates for substitution).
                              items:
                                properties:
                                  resourceGroup:
                                    description: 'Optional. API group string of a
                                      Kubernetes resource, e.g. "apiextensions.k8s.io",
                                      "storage.k8s.io", etc. Note: use empty string
                                      for core API group'
                                    type: string
                                  resourceKind:
                                    description: Optional. Kind of a Kubernetes resource,
                                      must be in UpperCamelCase (PascalCase) and singular
                                      form. E.g. "CustomResourceDefinition", "StorageClass",
                                      etc.
                                    type: string
                                type: object
                              type: array
                            targetJSONPath:
                              description: Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/)
                                expression that matches specific fields of candidate
                                resources and it operates as both a filtering parameter
                                (resources that are not matched with this expression
                                will not be candidates for substitution) as well as
                                a field identifier (identifies exactly which fields
                                out of the candidate resources will be modified).
                              type: string
                            targetNamespaces:
                              description: Optional. (Filtering parameter) Any resource
                                subject to substitution must be contained within one
                                of the listed Kubernetes Namespace in the Backup.
                                If this field is not provided, no namespace filtering
                                will be performed (all resources in all Namespaces,
                                including all cluster-scoped resources, will be candidates
                                for substitution). To mix cluster-scoped and namespaced
                                resources in the same rule, use an empty string ("")
                                as one of the target namespaces.
                              items:
                                type: string
                              type: array
                          required:
                          - targetJSONPath
                          type: object
                        type: array
                      transformationRules:
                        description: Optional. A list of transformation rules to be
                          applied against Kubernetes resources as they are selected
                          for restoration from a Backup. Rules are executed in order
                          defined - this order matters, as changes made by a rule
                          may impact the filtering logic of subsequent rules. An empty
                          list means no transformation will occur.
                        items:
                          properties:
                            description:
                              description: Optional. The description is a user specified
                                string description of the transformation rule.
                              type: string
                            fieldActions:
                              description: Required. A list of transformation rule
                                actions to take against candidate resources. Actions
                                are executed in order defined - this order matters,
                                as they could potentially interfere with each other
                                and the first operation could affect the outcome of
                                the second operation.
                              items:
                                properties:
                                  fromPath:
                                    description: Optional. A string containing a JSON
                                      Pointer value that references the location in
                                      the target document to move the value from.
                                    type: string
                                  op:
                                    description: Required. op specifies the operation
                                      to perform.
                                    type: string
                                  path:
                                    description: Optional. A string containing a JSON-Pointer
                                      value that references a location within the
                                      target document where the operation is performed.
                                    type: string
                                  value:
                                    description: Optional. A string that specifies
                                      the desired value in string format to use for
                                      transformation.
                                    type: string
                                required:
                                - op
                                type: object
                              type: array
                            resourceFilter:
                              description: Optional. This field is used to specify
                                a set of fields that should be used to determine which
                                resources in backup should be acted upon by the supplied
                                transformation rule actions, and this will ensure
                                that only specific resources are affected by transformation
                                rule actions.
                              properties:
                                groupKinds:
                                  description: Optional. (Filtering parameter) Any
                                    resource subject to transformation must belong
                                    to one of the listed "types". If this field is
                                    not provided, no type filtering will be performed
                                    (all resources of all types matching previous
                                    filtering parameters will be candidates for transformation).
                                  items:
                                    properties:
                                      resourceGroup:
                                        description: 'Optional. API group string of
                                          a Kubernetes resource, e.g. "apiextensions.k8s.io",
                                          "storage.k8s.io", etc. Note: use empty string
                                          for core API group'
                                        type: string
                                      resourceKind:
                                        description: Optional. Kind of a Kubernetes
                                          resource, must be in UpperCamelCase (PascalCase)
                                          and singular form. E.g. "CustomResourceDefinition",
                                          "StorageClass", etc.
                                        type: string
                                    type: object
                                  type: array
                                jsonPath:
                                  description: Optional. This is a [JSONPath] (https://github.com/json-path/JsonPath/blob/master/README.md)
                                    expression that matches specific fields of candidate
                                    resources and it operates as a filtering parameter
                                    (resources that are not matched with this expression
                                    will not be candidates for transformation).
                                  type: string
                                namespaces:
                                  description: Optional. (Filtering parameter) Any
                                    resource subject to transformation must be contained
                                    within one of the listed Kubernetes Namespace
                                    in the Backup. If this field is not provided,
                                    no namespace filtering will be performed (all
                                    resources in all Namespaces, including all cluster-scoped
                                    resources, will be candidates for transformation).
                                  items:
                                    type: string
                                  type: array
                              type: object
                          required:
                          - fieldActions
                          type: object
                        type: array
                      volumeDataRestorePolicy:
                        description: 'Optional. Specifies the mechanism to be used
                          to restore volume data. Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED
                          (will be treated as NO_VOLUME_DATA_RESTORATION).'
                        type: string
                      volumeDataRestorePolicyBindings:
                        description: Optional. A table that binds volumes by their
                          scope to a restore policy. Bindings must have a unique scope.
                          Any volumes not scoped in the bindings are subject to the
                          policy defined in volume_data_restore_policy.
                        items:
                          properties:
                            policy:
                              description: Required. The VolumeDataRestorePolicy to
                                apply when restoring volumes in scope.
                              type: string
                            volumeType:
                              description: The volume type, as determined by the PVC's
                                bound PV, to apply the policy to.
                              type: string
                          required:
                          - policy
                          type: object
                        type: array
                    type: object
                  state:
                    description: Output only. The current state of the Restore.
                    type: string
                  stateReason:
                    description: Output only. Human-readable description of why the
                      Restore is in its current state.
                    type: string
                  uid:
                    description: Output only. Server generated global unique identifier
                      of [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)
                      format.
                    type: string
                  updateTime:
                    description: Output only. The timestamp when this Restore resource
                      was last updated.
                    type: string
                  volumesRestoredCount:
                    description: Output only. Number of volumes restored during the
                      restore execution.
                    format: int32
                    type: integer
                type: object
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
