# frozen_string_literal: true

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Auto-generated by gapic-generator-ruby. DO NOT EDIT!


module Google
  module Cloud
    module AlloyDB
      module V1alpha
        # Message for requesting list of Clusters
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. For the required format, see the
        #     comment on the Cluster.name field. Additionally, you can perform an
        #     aggregated list operation by specifying a value with the following format:
        #      * projects/\\{project}/locations/-
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Optional. Requested page size. Server may return fewer items than
        #     requested. If unspecified, server will pick an appropriate default.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] filter
        #   @return [::String]
        #     Optional. Filtering results
        # @!attribute [rw] order_by
        #   @return [::String]
        #     Optional. Hint for how to order the results
        class ListClustersRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for response to listing Clusters
        # @!attribute [rw] clusters
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::Cluster>]
        #     The list of Cluster
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] unreachable
        #   @return [::Array<::String>]
        #     Locations that could not be reached.
        class ListClustersResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for getting a Cluster
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Cluster.name field.
        # @!attribute [rw] view
        #   @return [::Google::Cloud::AlloyDB::V1alpha::ClusterView]
        #     Optional. The view of the cluster to return. Returns all default fields if
        #     not set.
        class GetClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The location of the new cluster. For the required
        #     format, see the comment on the Cluster.name field.
        # @!attribute [rw] cluster_id
        #   @return [::String]
        #     Required. ID of the requesting object (the secondary cluster).
        # @!attribute [rw] cluster
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Cluster]
        #     Required. Configuration of the requesting object (the secondary cluster).
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the create
        #     request.
        class CreateSecondaryClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a Cluster
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The location of the new cluster. For the required format, see the
        #     comment on the Cluster.name field.
        # @!attribute [rw] cluster_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] cluster
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Cluster]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the create
        #     request.
        class CreateClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for updating a Cluster
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. Field mask is used to specify the fields to be overwritten in the
        #     Cluster resource by the update.
        #     The fields specified in the update_mask are relative to the resource, not
        #     the full request. A field will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields will be overwritten.
        # @!attribute [rw] cluster
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Cluster]
        #     Required. The resource being updated
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the update
        #     request.
        # @!attribute [rw] allow_missing
        #   @return [::Boolean]
        #     Optional. If set to true, update succeeds even if cluster is not found. In
        #     that case, a new cluster is created and `update_mask` is ignored.
        class UpdateClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for deleting a Cluster
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Cluster.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] etag
        #   @return [::String]
        #     Optional. The current etag of the Cluster.
        #     If an etag is provided and does not match the current etag of the Cluster,
        #     deletion will be blocked and an ABORTED error will be returned.
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the delete.
        # @!attribute [rw] force
        #   @return [::Boolean]
        #     Optional. Whether to cascade delete child instances for given cluster.
        class DeleteClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for promoting a Cluster
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Cluster.name field
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] etag
        #   @return [::String]
        #     Optional. The current etag of the Cluster.
        #     If an etag is provided and does not match the current etag of the Cluster,
        #     deletion will be blocked and an ABORTED error will be returned.
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the delete.
        class PromoteClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for restoring a Cluster from a backup or another cluster at a given
        # point in time.
        # @!attribute [rw] backup_source
        #   @return [::Google::Cloud::AlloyDB::V1alpha::BackupSource]
        #     Backup source.
        # @!attribute [rw] continuous_backup_source
        #   @return [::Google::Cloud::AlloyDB::V1alpha::ContinuousBackupSource]
        #     ContinuousBackup source. Continuous backup needs to be enabled in the
        #     source cluster for this operation to succeed.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. For the required format, see the
        #     comment on the Cluster.name field.
        # @!attribute [rw] cluster_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] cluster
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Cluster]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the import
        #     request.
        class RestoreClusterRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for requesting list of Instances
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. For the required format, see the
        #     comment on the Instance.name field. Additionally, you can perform an
        #     aggregated list operation by specifying a value with one of the following
        #     formats:
        #      * projects/\\{project}/locations/-/clusters/-
        #      * projects/\\{project}/locations/\\{region}/clusters/-
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Optional. Requested page size. Server may return fewer items than
        #     requested. If unspecified, server will pick an appropriate default.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] filter
        #   @return [::String]
        #     Optional. Filtering results
        # @!attribute [rw] order_by
        #   @return [::String]
        #     Optional. Hint for how to order the results
        class ListInstancesRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for response to listing Instances
        # @!attribute [rw] instances
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::Instance>]
        #     The list of Instance
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] unreachable
        #   @return [::Array<::String>]
        #     Locations that could not be reached.
        class ListInstancesResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for getting a Instance
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] view
        #   @return [::Google::Cloud::AlloyDB::V1alpha::InstanceView]
        #     The view of the instance to return.
        class GetInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a Instance
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] instance_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] instance
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Instance]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the create
        #     request.
        class CreateInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a Secondary Instance
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] instance_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] instance
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Instance]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the create
        #     request.
        class CreateSecondaryInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # See usage below for notes.
        # @!attribute [rw] create_instance_requests
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::CreateInstanceRequest>]
        #     Required. Primary and read replica instances to be created. This list
        #     should not be empty.
        class CreateInstanceRequests
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a batch of instances under the specified cluster.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource.
        # @!attribute [rw] requests
        #   @return [::Google::Cloud::AlloyDB::V1alpha::CreateInstanceRequests]
        #     Required. Resources being created.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        class BatchCreateInstancesRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating batches of instances in a cluster.
        # @!attribute [rw] instances
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::Instance>]
        #     Created instances.
        class BatchCreateInstancesResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for metadata that is specific to BatchCreateInstances API.
        # NEXT_ID: 3
        # @!attribute [rw] instance_targets
        #   @return [::Array<::String>]
        #     The instances being created in the API call. Each string in this list
        #     is the server defined resource path for target instances in the request
        #     and for the format of each string, see the comment on the Instance.name
        #     field.
        # @!attribute [rw] instance_statuses
        #   @return [::Google::Protobuf::Map{::String => ::Google::Cloud::AlloyDB::V1alpha::BatchCreateInstanceStatus}]
        #     A map representing state of the instances involved in the
        #     BatchCreateInstances operation during the operation execution.
        #     The instance state will be in STATE_UNSPECIFIED state if the instance has
        #     not yet been picked up for processing.
        #     The key of the map is the name of the instance resource.
        #     For the format, see the comment on the Instance.name field.
        class BatchCreateInstancesMetadata
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # @!attribute [rw] key
          #   @return [::String]
          # @!attribute [rw] value
          #   @return [::Google::Cloud::AlloyDB::V1alpha::BatchCreateInstanceStatus]
          class InstanceStatusesEntry
            include ::Google::Protobuf::MessageExts
            extend ::Google::Protobuf::MessageExts::ClassMethods
          end
        end

        # Message for current status of an instance in the BatchCreateInstances
        # operation.
        # For example, lets say a BatchCreateInstances workflow has 4 instances,
        # Instance1 through Instance4. Lets also assume that 2 instances succeeded
        # but the third failed to create and the 4th was never picked up for creation
        # because of failure of the previous one. Then, resulting states would look
        # something like:
        #   1. Instance1 = ROLLED_BACK
        #   2. Instance2 = ROLLED_BACK
        #   3. Instance3 = FAILED
        #   4. Instance4 = FAILED
        #
        # However, while the operation is running, the instance might be in other
        # states including PENDING_CREATE, ACTIVE, DELETING and CREATING. The states
        # / do not get further updated once the operation is done.
        # @!attribute [rw] state
        #   @return [::Google::Cloud::AlloyDB::V1alpha::BatchCreateInstanceStatus::State]
        #     The current state of an instance involved in the batch create operation.
        #     Once the operation is complete, the final state of the instances in the
        #     LRO can be one of:
        #       1. ACTIVE, indicating that instances were created successfully
        #       2. FAILED, indicating that a particular instance failed creation
        #       3. ROLLED_BACK indicating that although the instance was created
        #          successfully, it had to be rolled back and deleted due to failure in
        #          other steps of the workflow.
        # @!attribute [rw] error_msg
        #   @return [::String]
        #     DEPRECATED - Use the error field instead.
        #     Error, if any error occurred and is available, during instance creation.
        # @!attribute [rw] error
        #   @return [::Google::Rpc::Status]
        #     The RPC status of the instance creation operation. This field will be
        #     present if an error happened during the instance creation.
        # @!attribute [rw] type
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Instance::InstanceType]
        class BatchCreateInstanceStatus
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # State contains all valid instance states for the BatchCreateInstances
          # operation. This is mainly used for status reporting through the LRO
          # metadata.
          module State
            # The state of the instance is unknown.
            STATE_UNSPECIFIED = 0

            # Instance is pending creation and has not yet been picked up for
            # processsing in the backend.
            PENDING_CREATE = 1

            # The instance is active and running.
            READY = 2

            # The instance is being created.
            CREATING = 3

            # The instance is being deleted.
            DELETING = 4

            # The creation of the instance failed or a fatal error occurred during
            # an operation on the instance or a batch of instances.
            FAILED = 5

            # The instance was created successfully, but was rolled back and deleted
            # due to some other failure during BatchCreateInstances operation.
            ROLLED_BACK = 6
          end
        end

        # Message for updating a Instance
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. Field mask is used to specify the fields to be overwritten in the
        #     Instance resource by the update.
        #     The fields specified in the update_mask are relative to the resource, not
        #     the full request. A field will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields will be overwritten.
        # @!attribute [rw] instance
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Instance]
        #     Required. The resource being updated
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the update
        #     request.
        # @!attribute [rw] allow_missing
        #   @return [::Boolean]
        #     Optional. If set to true, update succeeds even if instance is not found. In
        #     that case, a new instance is created and `update_mask` is ignored.
        class UpdateInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for deleting a Instance
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] etag
        #   @return [::String]
        #     Optional. The current etag of the Instance.
        #     If an etag is provided and does not match the current etag of the Instance,
        #     deletion will be blocked and an ABORTED error will be returned.
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the delete.
        class DeleteInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for triggering failover on an Instance
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the failover.
        class FailoverInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for triggering fault injection on an instance
        # @!attribute [rw] fault_type
        #   @return [::Google::Cloud::AlloyDB::V1alpha::InjectFaultRequest::FaultType]
        #     Required. The type of fault to be injected in an instance.
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the fault
        #     injection.
        class InjectFaultRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods

          # FaultType contains all valid types of faults that can be injected to an
          # instance.
          module FaultType
            # The fault type is unknown.
            FAULT_TYPE_UNSPECIFIED = 0

            # Stop the VM
            STOP_VM = 1
          end
        end

        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the Instance.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, performs request validation (e.g. permission checks and
        #     any other type of validation), but do not actually execute the restart.
        class RestartInstanceRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for requesting list of Backups
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. Parent value for ListBackupsRequest
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Requested page size. Server may return fewer items than requested.
        #     If unspecified, server will pick an appropriate default.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] filter
        #   @return [::String]
        #     Filtering results
        # @!attribute [rw] order_by
        #   @return [::String]
        #     Hint for how to order the results
        class ListBackupsRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for response to listing Backups
        # @!attribute [rw] backups
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::Backup>]
        #     The list of Backup
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] unreachable
        #   @return [::Array<::String>]
        #     Locations that could not be reached.
        class ListBackupsResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for getting a Backup
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. Name of the resource
        class GetBackupRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a Backup
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. Value for parent.
        # @!attribute [rw] backup_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] backup
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Backup]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        class CreateBackupRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for updating a Backup
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. Field mask is used to specify the fields to be overwritten in the
        #     Backup resource by the update.
        #     The fields specified in the update_mask are relative to the resource, not
        #     the full request. A field will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields will be overwritten.
        # @!attribute [rw] backup
        #   @return [::Google::Cloud::AlloyDB::V1alpha::Backup]
        #     Required. The resource being updated
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        # @!attribute [rw] allow_missing
        #   @return [::Boolean]
        #     Optional. If set to true, update succeeds even if instance is not found. In
        #     that case, a new backup is created and `update_mask` is ignored.
        class UpdateBackupRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for deleting a Backup
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. Name of the resource. For the required format, see the comment on
        #     the Backup.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        # @!attribute [rw] etag
        #   @return [::String]
        #     Optional. The current etag of the Backup.
        #     If an etag is provided and does not match the current etag of the Backup,
        #     deletion will be blocked and an ABORTED error will be returned.
        class DeleteBackupRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for listing the information about the supported Database flags.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. The required format is:
        #      * projects/\\{project}/locations/\\{location}
        #
        #     Regardless of the parent specified here, as long it is contains a valid
        #     project and location, the service will return a static list of supported
        #     flags resources. Note that we do not yet support region-specific
        #     flags.
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Requested page size. Server may return fewer items than requested.
        #     If unspecified, server will pick an appropriate default.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        class ListSupportedDatabaseFlagsRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for response to listing SupportedDatabaseFlags.
        # @!attribute [rw] supported_database_flags
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::SupportedDatabaseFlag>]
        #     The list of SupportedDatabaseFlags.
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        class ListSupportedDatabaseFlagsResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for requests to generate a client certificate signed by the Cluster
        # CA.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. The required format is:
        #      * projects/\\{project}/locations/\\{location}/clusters/\\{cluster}
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] pem_csr
        #   @return [::String]
        #     Optional. A pem-encoded X.509 certificate signing request (CSR).
        # @!attribute [rw] cert_duration
        #   @return [::Google::Protobuf::Duration]
        #     Optional. An optional hint to the endpoint to generate the client
        #     certificate with the requested duration. The duration can be from 1 hour to
        #     24 hours. The endpoint may or may not honor the hint. If the hint is left
        #     unspecified or is not honored, then the endpoint will pick an appropriate
        #     default duration.
        # @!attribute [rw] public_key
        #   @return [::String]
        #     Optional. The public key from the client.
        # @!attribute [rw] use_metadata_exchange
        #   @return [::Boolean]
        #     Optional. An optional hint to the endpoint to generate a client
        #     ceritificate that can be used by AlloyDB connectors to exchange additional
        #     metadata with the server after TLS handshake.
        class GenerateClientCertificateRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message returned by a GenerateClientCertificate operation.
        # @!attribute [r] pem_certificate
        #   @return [::String]
        #     Output only. The pem-encoded, signed X.509 certificate.
        # @!attribute [r] pem_certificate_chain
        #   @return [::Array<::String>]
        #     Output only. The pem-encoded chain that may be used to verify the X.509
        #     certificate. Expected to be in issuer-to-root order according to RFC 5246.
        # @!attribute [rw] ca_cert
        #   @return [::String]
        #     Optional. The pem-encoded cluster ca X.509 certificate.
        class GenerateClientCertificateResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for GetConnectionInfo.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The name of the parent resource. The required format is:
        #     projects/\\{project}/locations/\\{location}/clusters/\\{cluster}/instances/\\{instance}
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        class GetConnectionInfoRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Represents the metadata of the long-running operation.
        # @!attribute [r] batch_create_instances_metadata
        #   @return [::Google::Cloud::AlloyDB::V1alpha::BatchCreateInstancesMetadata]
        #     Output only. BatchCreateInstances related metadata.
        # @!attribute [r] create_time
        #   @return [::Google::Protobuf::Timestamp]
        #     Output only. The time the operation was created.
        # @!attribute [r] end_time
        #   @return [::Google::Protobuf::Timestamp]
        #     Output only. The time the operation finished running.
        # @!attribute [r] target
        #   @return [::String]
        #     Output only. Server-defined resource path for the target of the operation.
        # @!attribute [r] verb
        #   @return [::String]
        #     Output only. Name of the verb executed by the operation.
        # @!attribute [r] status_message
        #   @return [::String]
        #     Output only. Human-readable status of the operation, if any.
        # @!attribute [r] requested_cancellation
        #   @return [::Boolean]
        #     Output only. Identifies whether the user has requested cancellation
        #     of the operation. Operations that have successfully been cancelled
        #     have [Operation.error][] value with a
        #     {::Google::Rpc::Status#code google.rpc.Status.code} of 1, corresponding to
        #     `Code.CANCELLED`.
        # @!attribute [r] api_version
        #   @return [::String]
        #     Output only. API version used to start the operation.
        class OperationMetadata
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for requesting list of Users
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. Parent value for ListUsersRequest
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Optional. Requested page size. Server may return fewer items than
        #     requested. If unspecified, server will pick an appropriate default.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     Optional. A token identifying a page of results the server should return.
        # @!attribute [rw] filter
        #   @return [::String]
        #     Optional. Filtering results
        # @!attribute [rw] order_by
        #   @return [::String]
        #     Optional. Hint for how to order the results
        class ListUsersRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for response to listing Users
        # @!attribute [rw] users
        #   @return [::Array<::Google::Cloud::AlloyDB::V1alpha::User>]
        #     The list of User
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A token identifying a page of results the server should return.
        # @!attribute [rw] unreachable
        #   @return [::Array<::String>]
        #     Locations that could not be reached.
        class ListUsersResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for getting a User
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the User.name field.
        class GetUserRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for creating a User
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. Value for parent.
        # @!attribute [rw] user_id
        #   @return [::String]
        #     Required. ID of the requesting object.
        # @!attribute [rw] user
        #   @return [::Google::Cloud::AlloyDB::V1alpha::User]
        #     Required. The resource being created
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        class CreateUserRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for updating a User
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. Field mask is used to specify the fields to be overwritten in the
        #     User resource by the update.
        #     The fields specified in the update_mask are relative to the resource, not
        #     the full request. A field will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields will be overwritten.
        # @!attribute [rw] user
        #   @return [::Google::Cloud::AlloyDB::V1alpha::User]
        #     Required. The resource being updated
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes since the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        # @!attribute [rw] allow_missing
        #   @return [::Boolean]
        #     Optional. Allow missing fields in the update mask.
        class UpdateUserRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Message for deleting a User
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the resource. For the required format, see the
        #     comment on the User.name field.
        # @!attribute [rw] request_id
        #   @return [::String]
        #     Optional. An optional request ID to identify requests. Specify a unique
        #     request ID so that if you must retry your request, the server will know to
        #     ignore the request if it has already been completed. The server will
        #     guarantee that for at least 60 minutes after the first request.
        #
        #     For example, consider a situation where you make an initial request and
        #     the request times out. If you make the request again with the same request
        #     ID, the server can check if original operation with the same request ID
        #     was received, and if so, will ignore the second request. This prevents
        #     clients from accidentally creating duplicate commitments.
        #
        #     The request ID must be a valid UUID with the exception that zero UUID is
        #     not supported (00000000-0000-0000-0000-000000000000).
        # @!attribute [rw] validate_only
        #   @return [::Boolean]
        #     Optional. If set, the backend validates the request, but doesn't actually
        #     execute it.
        class DeleteUserRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end
      end
    end
  end
end