1569 lines
		
	
	
		
			66 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			1569 lines
		
	
	
		
			66 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# Copyright 2015 Google Inc.
 | 
						|
#
 | 
						|
# 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
 | 
						|
#
 | 
						|
#      http://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.
 | 
						|
 | 
						|
require 'date'
 | 
						|
require 'google/apis/core/base_service'
 | 
						|
require 'google/apis/core/json_representation'
 | 
						|
require 'google/apis/core/hashable'
 | 
						|
require 'google/apis/errors'
 | 
						|
 | 
						|
module Google
 | 
						|
  module Apis
 | 
						|
    module ManagedidentitiesV1beta1
 | 
						|
      
 | 
						|
      # Request message for
 | 
						|
      # AttachTrust
 | 
						|
      class AttachTrustRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Represents a relationship between two domains. This allows a controller in
 | 
						|
        # one domain to authenticate a user in another domain.
 | 
						|
        # Corresponds to the JSON property `trust`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::TrustProp]
 | 
						|
        attr_accessor :trust_prop
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @trust_prop = args[:trust_prop] if args.key?(:trust_prop)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Associates `members` with a `role`.
 | 
						|
      class Binding
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Represents a textual expression in the Common Expression Language (CEL)
 | 
						|
        # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
 | 
						|
        # are documented at https://github.com/google/cel-spec.
 | 
						|
        # Example (Comparison):
 | 
						|
        # title: "Summary size limit"
 | 
						|
        # description: "Determines if a summary is less than 100 chars"
 | 
						|
        # expression: "document.summary.size() < 100"
 | 
						|
        # Example (Equality):
 | 
						|
        # title: "Requestor is owner"
 | 
						|
        # description: "Determines if requestor is the document owner"
 | 
						|
        # expression: "document.owner == request.auth.claims.email"
 | 
						|
        # Example (Logic):
 | 
						|
        # title: "Public documents"
 | 
						|
        # description: "Determine whether the document should be publicly visible"
 | 
						|
        # expression: "document.type != 'private' && document.type != 'internal'"
 | 
						|
        # Example (Data Manipulation):
 | 
						|
        # title: "Notification string"
 | 
						|
        # description: "Create a notification string with a timestamp."
 | 
						|
        # expression: "'New message received at ' + string(document.create_time)"
 | 
						|
        # The exact variables and functions that may be referenced within an expression
 | 
						|
        # are determined by the service that evaluates it. See the service
 | 
						|
        # documentation for additional information.
 | 
						|
        # Corresponds to the JSON property `condition`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::Expr]
 | 
						|
        attr_accessor :condition
 | 
						|
      
 | 
						|
        # Specifies the identities requesting access for a Cloud Platform resource.
 | 
						|
        # `members` can have the following values:
 | 
						|
        # * `allUsers`: A special identifier that represents anyone who is
 | 
						|
        # on the internet; with or without a Google account.
 | 
						|
        # * `allAuthenticatedUsers`: A special identifier that represents anyone
 | 
						|
        # who is authenticated with a Google account or a service account.
 | 
						|
        # * `user:`emailid``: An email address that represents a specific Google
 | 
						|
        # account. For example, `alice@example.com` .
 | 
						|
        # * `serviceAccount:`emailid``: An email address that represents a service
 | 
						|
        # account. For example, `my-other-app@appspot.gserviceaccount.com`.
 | 
						|
        # * `group:`emailid``: An email address that represents a Google group.
 | 
						|
        # For example, `admins@example.com`.
 | 
						|
        # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
 | 
						|
        # identifier) representing a user that has been recently deleted. For
 | 
						|
        # example, `alice@example.com?uid=123456789012345678901`. If the user is
 | 
						|
        # recovered, this value reverts to `user:`emailid`` and the recovered user
 | 
						|
        # retains the role in the binding.
 | 
						|
        # * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus
 | 
						|
        # unique identifier) representing a service account that has been recently
 | 
						|
        # deleted. For example,
 | 
						|
        # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
 | 
						|
        # If the service account is undeleted, this value reverts to
 | 
						|
        # `serviceAccount:`emailid`` and the undeleted service account retains the
 | 
						|
        # role in the binding.
 | 
						|
        # * `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
 | 
						|
        # identifier) representing a Google group that has been recently
 | 
						|
        # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
 | 
						|
        # the group is recovered, this value reverts to `group:`emailid`` and the
 | 
						|
        # recovered group retains the role in the binding.
 | 
						|
        # * `domain:`domain``: The G Suite domain (primary) that represents all the
 | 
						|
        # users of that domain. For example, `google.com` or `example.com`.
 | 
						|
        # Corresponds to the JSON property `members`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :members
 | 
						|
      
 | 
						|
        # Role that is assigned to `members`.
 | 
						|
        # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
 | 
						|
        # Corresponds to the JSON property `role`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :role
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @condition = args[:condition] if args.key?(:condition)
 | 
						|
          @members = args[:members] if args.key?(:members)
 | 
						|
          @role = args[:role] if args.key?(:role)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The request message for Operations.CancelOperation.
 | 
						|
      class CancelOperationRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for
 | 
						|
      # DetachTrust
 | 
						|
      class DetachTrustRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Represents a relationship between two domains. This allows a controller in
 | 
						|
        # one domain to authenticate a user in another domain.
 | 
						|
        # Corresponds to the JSON property `trust`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::TrustProp]
 | 
						|
        attr_accessor :trust_prop
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @trust_prop = args[:trust_prop] if args.key?(:trust_prop)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents a managed Microsoft Active Directory domain.
 | 
						|
      class Domain
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Optional. The name of delegated administrator account used to perform
 | 
						|
        # Active Directory operations. If not specified, `setupadmin` will be used.
 | 
						|
        # Corresponds to the JSON property `admin`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :admin
 | 
						|
      
 | 
						|
        # Optional. The full names of the Google Compute Engine
 | 
						|
        # [networks](/compute/docs/networks-and-firewalls#networks) the domain
 | 
						|
        # instance is connected to. Networks can be added using UpdateDomain.
 | 
						|
        # The domain is only available on networks listed in `authorized_networks`.
 | 
						|
        # If CIDR subnets overlap between networks, domain creation will fail.
 | 
						|
        # Corresponds to the JSON property `authorizedNetworks`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :authorized_networks
 | 
						|
      
 | 
						|
        # Output only. The time the instance was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Output only. The fully-qualified domain name of the exposed domain used by
 | 
						|
        # clients to connect to the service. Similar to what would be chosen for an
 | 
						|
        # Active Directory set up on an internal network.
 | 
						|
        # Corresponds to the JSON property `fqdn`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :fqdn
 | 
						|
      
 | 
						|
        # Optional. Resource labels that can contain user-provided metadata.
 | 
						|
        # Corresponds to the JSON property `labels`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :labels
 | 
						|
      
 | 
						|
        # Required. Locations where domain needs to be provisioned.
 | 
						|
        # regions
 | 
						|
        # e.g. us-west1 or us-east4
 | 
						|
        # Service supports up to 4 locations at once. Each location will use a /26
 | 
						|
        # block.
 | 
						|
        # Corresponds to the JSON property `locations`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :locations
 | 
						|
      
 | 
						|
        # Output only. The unique name of the domain using the form:
 | 
						|
        # `projects/`project_id`/locations/global/domains/`domain_name``.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # Required. The CIDR range of internal addresses that are reserved for this
 | 
						|
        # domain. Reserved networks must be /24 or larger. Ranges must be
 | 
						|
        # unique and non-overlapping with existing subnets in
 | 
						|
        # [Domain].[authorized_networks].
 | 
						|
        # Corresponds to the JSON property `reservedIpRange`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :reserved_ip_range
 | 
						|
      
 | 
						|
        # Output only. The current state of this domain.
 | 
						|
        # Corresponds to the JSON property `state`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :state
 | 
						|
      
 | 
						|
        # Output only. Additional information about the current status of this
 | 
						|
        # domain, if available.
 | 
						|
        # Corresponds to the JSON property `statusMessage`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :status_message
 | 
						|
      
 | 
						|
        # Output only. The current trusts associated with the domain.
 | 
						|
        # Corresponds to the JSON property `trusts`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::TrustProp>]
 | 
						|
        attr_accessor :trusts
 | 
						|
      
 | 
						|
        # Output only. The last update time.
 | 
						|
        # Corresponds to the JSON property `updateTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :update_time
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @admin = args[:admin] if args.key?(:admin)
 | 
						|
          @authorized_networks = args[:authorized_networks] if args.key?(:authorized_networks)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @fqdn = args[:fqdn] if args.key?(:fqdn)
 | 
						|
          @labels = args[:labels] if args.key?(:labels)
 | 
						|
          @locations = args[:locations] if args.key?(:locations)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @reserved_ip_range = args[:reserved_ip_range] if args.key?(:reserved_ip_range)
 | 
						|
          @state = args[:state] if args.key?(:state)
 | 
						|
          @status_message = args[:status_message] if args.key?(:status_message)
 | 
						|
          @trusts = args[:trusts] if args.key?(:trusts)
 | 
						|
          @update_time = args[:update_time] if args.key?(:update_time)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A generic empty message that you can re-use to avoid defining duplicated
 | 
						|
      # empty messages in your APIs. A typical example is to use it as the request
 | 
						|
      # or the response type of an API method. For instance:
 | 
						|
      # service Foo `
 | 
						|
      # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
 | 
						|
      # `
 | 
						|
      # The JSON representation for `Empty` is empty JSON object ````.
 | 
						|
      class Empty
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents a textual expression in the Common Expression Language (CEL)
 | 
						|
      # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
 | 
						|
      # are documented at https://github.com/google/cel-spec.
 | 
						|
      # Example (Comparison):
 | 
						|
      # title: "Summary size limit"
 | 
						|
      # description: "Determines if a summary is less than 100 chars"
 | 
						|
      # expression: "document.summary.size() < 100"
 | 
						|
      # Example (Equality):
 | 
						|
      # title: "Requestor is owner"
 | 
						|
      # description: "Determines if requestor is the document owner"
 | 
						|
      # expression: "document.owner == request.auth.claims.email"
 | 
						|
      # Example (Logic):
 | 
						|
      # title: "Public documents"
 | 
						|
      # description: "Determine whether the document should be publicly visible"
 | 
						|
      # expression: "document.type != 'private' && document.type != 'internal'"
 | 
						|
      # Example (Data Manipulation):
 | 
						|
      # title: "Notification string"
 | 
						|
      # description: "Create a notification string with a timestamp."
 | 
						|
      # expression: "'New message received at ' + string(document.create_time)"
 | 
						|
      # The exact variables and functions that may be referenced within an expression
 | 
						|
      # are determined by the service that evaluates it. See the service
 | 
						|
      # documentation for additional information.
 | 
						|
      class Expr
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Optional. Description of the expression. This is a longer text which
 | 
						|
        # describes the expression, e.g. when hovered over it in a UI.
 | 
						|
        # Corresponds to the JSON property `description`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :description
 | 
						|
      
 | 
						|
        # Textual representation of an expression in Common Expression Language
 | 
						|
        # syntax.
 | 
						|
        # Corresponds to the JSON property `expression`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :expression
 | 
						|
      
 | 
						|
        # Optional. String indicating the location of the expression for error
 | 
						|
        # reporting, e.g. a file name and a position in the file.
 | 
						|
        # Corresponds to the JSON property `location`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :location
 | 
						|
      
 | 
						|
        # Optional. Title for the expression, i.e. a short string describing
 | 
						|
        # its purpose. This can be used e.g. in UIs which allow to enter the
 | 
						|
        # expression.
 | 
						|
        # Corresponds to the JSON property `title`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :title
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @description = args[:description] if args.key?(:description)
 | 
						|
          @expression = args[:expression] if args.key?(:expression)
 | 
						|
          @location = args[:location] if args.key?(:location)
 | 
						|
          @title = args[:title] if args.key?(:title)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents the metadata of the long-running operation.
 | 
						|
      class GoogleCloudManagedidentitiesV1OpMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Output only. API version used to start the operation.
 | 
						|
        # Corresponds to the JSON property `apiVersion`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :api_version
 | 
						|
      
 | 
						|
        # Output only. The time the operation was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Output only. The time the operation finished running.
 | 
						|
        # Corresponds to the JSON property `endTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :end_time
 | 
						|
      
 | 
						|
        # 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 of 1,
 | 
						|
        # corresponding to `Code.CANCELLED`.
 | 
						|
        # Corresponds to the JSON property `requestedCancellation`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :requested_cancellation
 | 
						|
        alias_method :requested_cancellation?, :requested_cancellation
 | 
						|
      
 | 
						|
        # Output only. Server-defined resource path for the target of the operation.
 | 
						|
        # Corresponds to the JSON property `target`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target
 | 
						|
      
 | 
						|
        # Output only. Name of the verb executed by the operation.
 | 
						|
        # Corresponds to the JSON property `verb`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :verb
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @api_version = args[:api_version] if args.key?(:api_version)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @end_time = args[:end_time] if args.key?(:end_time)
 | 
						|
          @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
 | 
						|
          @target = args[:target] if args.key?(:target)
 | 
						|
          @verb = args[:verb] if args.key?(:verb)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents the metadata of the long-running operation.
 | 
						|
      class GoogleCloudManagedidentitiesV1alpha1OpMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Output only. API version used to start the operation.
 | 
						|
        # Corresponds to the JSON property `apiVersion`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :api_version
 | 
						|
      
 | 
						|
        # Output only. The time the operation was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Output only. The time the operation finished running.
 | 
						|
        # Corresponds to the JSON property `endTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :end_time
 | 
						|
      
 | 
						|
        # 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 of 1,
 | 
						|
        # corresponding to `Code.CANCELLED`.
 | 
						|
        # Corresponds to the JSON property `requestedCancellation`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :requested_cancellation
 | 
						|
        alias_method :requested_cancellation?, :requested_cancellation
 | 
						|
      
 | 
						|
        # Output only. Server-defined resource path for the target of the operation.
 | 
						|
        # Corresponds to the JSON property `target`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target
 | 
						|
      
 | 
						|
        # Output only. Name of the verb executed by the operation.
 | 
						|
        # Corresponds to the JSON property `verb`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :verb
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @api_version = args[:api_version] if args.key?(:api_version)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @end_time = args[:end_time] if args.key?(:end_time)
 | 
						|
          @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
 | 
						|
          @target = args[:target] if args.key?(:target)
 | 
						|
          @verb = args[:verb] if args.key?(:verb)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents the metadata of the long-running operation.
 | 
						|
      class GoogleCloudManagedidentitiesV1beta1OpMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Output only. API version used to start the operation.
 | 
						|
        # Corresponds to the JSON property `apiVersion`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :api_version
 | 
						|
      
 | 
						|
        # Output only. The time the operation was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Output only. The time the operation finished running.
 | 
						|
        # Corresponds to the JSON property `endTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :end_time
 | 
						|
      
 | 
						|
        # 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 of 1,
 | 
						|
        # corresponding to `Code.CANCELLED`.
 | 
						|
        # Corresponds to the JSON property `requestedCancellation`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :requested_cancellation
 | 
						|
        alias_method :requested_cancellation?, :requested_cancellation
 | 
						|
      
 | 
						|
        # Output only. Server-defined resource path for the target of the operation.
 | 
						|
        # Corresponds to the JSON property `target`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target
 | 
						|
      
 | 
						|
        # Output only. Name of the verb executed by the operation.
 | 
						|
        # Corresponds to the JSON property `verb`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :verb
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @api_version = args[:api_version] if args.key?(:api_version)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @end_time = args[:end_time] if args.key?(:end_time)
 | 
						|
          @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
 | 
						|
          @target = args[:target] if args.key?(:target)
 | 
						|
          @verb = args[:verb] if args.key?(:verb)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # 
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1Instance
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # consumer_defined_name is the name that is set by the consumer. On the other
 | 
						|
        # hand Name field represents system-assigned id of an instance so consumers
 | 
						|
        # are not necessarily aware of it.
 | 
						|
        # consumer_defined_name is used for notification/UI purposes for consumer to
 | 
						|
        # recognize their instances.
 | 
						|
        # Corresponds to the JSON property `consumerDefinedName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :consumer_defined_name
 | 
						|
      
 | 
						|
        # Output only. Timestamp when the resource was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Optional. Resource labels to represent user provided metadata. Each label
 | 
						|
        # is a key-value pair, where both the key and the value are arbitrary strings
 | 
						|
        # provided by the user.
 | 
						|
        # Corresponds to the JSON property `labels`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :labels
 | 
						|
      
 | 
						|
        # The MaintenancePolicies that have been attached to the instance.
 | 
						|
        # The key must be of the type name of the oneof policy name defined in
 | 
						|
        # MaintenancePolicy, and the referenced policy must define the same policy
 | 
						|
        # type. For complete details of MaintenancePolicy, please refer to
 | 
						|
        # go/cloud-saas-mw-ug.
 | 
						|
        # Corresponds to the JSON property `maintenancePolicyNames`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :maintenance_policy_names
 | 
						|
      
 | 
						|
        # The MaintenanceSchedule contains the scheduling information of published
 | 
						|
        # maintenance schedule.
 | 
						|
        # Corresponds to the JSON property `maintenanceSchedules`
 | 
						|
        # @return [Hash<String,Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule>]
 | 
						|
        attr_accessor :maintenance_schedules
 | 
						|
      
 | 
						|
        # Unique name of the resource. It uses the form:
 | 
						|
        # `projects/`project_id`/locations/`location_id`/instances/`instance_id``
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # Output only. Custom string attributes used primarily to expose
 | 
						|
        # producer-specific information in monitoring dashboards.
 | 
						|
        # See go/get-instance-metadata.
 | 
						|
        # Corresponds to the JSON property `producerMetadata`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :producer_metadata
 | 
						|
      
 | 
						|
        # Output only. The list of data plane resources provisioned for this
 | 
						|
        # instance, e.g. compute VMs. See go/get-instance-metadata.
 | 
						|
        # Corresponds to the JSON property `provisionedResources`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource>]
 | 
						|
        attr_accessor :provisioned_resources
 | 
						|
      
 | 
						|
        # Link to the SLM instance template. Only populated when updating SLM
 | 
						|
        # instances via SSA's Actuation service adaptor.
 | 
						|
        # Service producers with custom control plane (e.g. Cloud SQL) doesn't
 | 
						|
        # need to populate this field. Instead they should use software_versions.
 | 
						|
        # Corresponds to the JSON property `slmInstanceTemplate`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :slm_instance_template
 | 
						|
      
 | 
						|
        # SloMetadata contains resources required for proper SLO classification of the
 | 
						|
        # instance.
 | 
						|
        # Corresponds to the JSON property `sloMetadata`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata]
 | 
						|
        attr_accessor :slo_metadata
 | 
						|
      
 | 
						|
        # Software versions that are used to deploy this instance. This can be
 | 
						|
        # mutated by rollout services.
 | 
						|
        # Corresponds to the JSON property `softwareVersions`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :software_versions
 | 
						|
      
 | 
						|
        # Output only. Current lifecycle state of the resource (e.g. if it's being
 | 
						|
        # created or ready to use).
 | 
						|
        # Corresponds to the JSON property `state`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :state
 | 
						|
      
 | 
						|
        # Output only. ID of the associated GCP tenant project.
 | 
						|
        # See go/get-instance-metadata.
 | 
						|
        # Corresponds to the JSON property `tenantProjectId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :tenant_project_id
 | 
						|
      
 | 
						|
        # Output only. Timestamp when the resource was last modified.
 | 
						|
        # Corresponds to the JSON property `updateTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :update_time
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @consumer_defined_name = args[:consumer_defined_name] if args.key?(:consumer_defined_name)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @labels = args[:labels] if args.key?(:labels)
 | 
						|
          @maintenance_policy_names = args[:maintenance_policy_names] if args.key?(:maintenance_policy_names)
 | 
						|
          @maintenance_schedules = args[:maintenance_schedules] if args.key?(:maintenance_schedules)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @producer_metadata = args[:producer_metadata] if args.key?(:producer_metadata)
 | 
						|
          @provisioned_resources = args[:provisioned_resources] if args.key?(:provisioned_resources)
 | 
						|
          @slm_instance_template = args[:slm_instance_template] if args.key?(:slm_instance_template)
 | 
						|
          @slo_metadata = args[:slo_metadata] if args.key?(:slo_metadata)
 | 
						|
          @software_versions = args[:software_versions] if args.key?(:software_versions)
 | 
						|
          @state = args[:state] if args.key?(:state)
 | 
						|
          @tenant_project_id = args[:tenant_project_id] if args.key?(:tenant_project_id)
 | 
						|
          @update_time = args[:update_time] if args.key?(:update_time)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Maintenance schedule which is exposed to customer and potentially end user,
 | 
						|
      # indicating published upcoming future maintenance schedule
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Can this scheduled update be rescheduled?
 | 
						|
        # By default, it's true and API needs to do explicitly check whether it's
 | 
						|
        # set, if it's set as false explicitly, it's false
 | 
						|
        # Corresponds to the JSON property `canReschedule`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :can_reschedule
 | 
						|
        alias_method :can_reschedule?, :can_reschedule
 | 
						|
      
 | 
						|
        # The scheduled end time for the maintenance.
 | 
						|
        # Corresponds to the JSON property `endTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :end_time
 | 
						|
      
 | 
						|
        # The rollout management policy this maintenance schedule is associated
 | 
						|
        # with. When doing reschedule update request, the reschedule should be
 | 
						|
        # against this given policy.
 | 
						|
        # Corresponds to the JSON property `rolloutManagementPolicy`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :rollout_management_policy
 | 
						|
      
 | 
						|
        # The scheduled start time for the maintenance.
 | 
						|
        # Corresponds to the JSON property `startTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :start_time
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @can_reschedule = args[:can_reschedule] if args.key?(:can_reschedule)
 | 
						|
          @end_time = args[:end_time] if args.key?(:end_time)
 | 
						|
          @rollout_management_policy = args[:rollout_management_policy] if args.key?(:rollout_management_policy)
 | 
						|
          @start_time = args[:start_time] if args.key?(:start_time)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Node information for custom per-node SLO implementations.
 | 
						|
      # SSA does not support per-node SLO, but producers can populate per-node
 | 
						|
      # information in SloMetadata for custom precomputations.
 | 
						|
      # SSA Eligibility Exporter will emit per-node metric based on this information.
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # By default node is eligible if instance is eligible.
 | 
						|
        # But individual node might be excluded from SLO by adding entry here.
 | 
						|
        # For semantic see SloMetadata.exclusions.
 | 
						|
        # If both instance and node level exclusions are present for time period,
 | 
						|
        # the node level's reason will be reported by Eligibility Exporter.
 | 
						|
        # Corresponds to the JSON property `exclusions`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion>]
 | 
						|
        attr_accessor :exclusions
 | 
						|
      
 | 
						|
        # The location of the node, if different from instance location.
 | 
						|
        # Corresponds to the JSON property `location`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :location
 | 
						|
      
 | 
						|
        # The id of the node.
 | 
						|
        # This should be equal to SaasInstanceNode.node_id.
 | 
						|
        # Corresponds to the JSON property `nodeId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :node_id
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @exclusions = args[:exclusions] if args.key?(:exclusions)
 | 
						|
          @location = args[:location] if args.key?(:location)
 | 
						|
          @node_id = args[:node_id] if args.key?(:node_id)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Describes provisioned dataplane resources.
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Type of the resource. This can be either a GCP resource or a custom one
 | 
						|
        # (e.g. another cloud provider's VM). For GCP compute resources use singular
 | 
						|
        # form of the names listed in GCP compute API documentation
 | 
						|
        # (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with
 | 
						|
        # 'compute-', for example: 'compute-instance', 'compute-disk',
 | 
						|
        # 'compute-autoscaler'.
 | 
						|
        # Corresponds to the JSON property `resourceType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :resource_type
 | 
						|
      
 | 
						|
        # URL identifying the resource, e.g.
 | 
						|
        # "https://www.googleapis.com/compute/v1/projects/...)".
 | 
						|
        # Corresponds to the JSON property `resourceUrl`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :resource_url
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @resource_type = args[:resource_type] if args.key?(:resource_type)
 | 
						|
          @resource_url = args[:resource_url] if args.key?(:resource_url)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # SloEligibility is a tuple containing eligibility value: true if an instance
 | 
						|
      # is eligible for SLO calculation or false if it should be excluded from all
 | 
						|
      # SLO-related calculations along with a user-defined reason.
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Whether an instance is eligible or ineligible.
 | 
						|
        # Corresponds to the JSON property `eligible`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :eligible
 | 
						|
        alias_method :eligible?, :eligible
 | 
						|
      
 | 
						|
        # User-defined reason for the current value of instance eligibility. Usually,
 | 
						|
        # this can be directly mapped to the internal state. An empty reason is
 | 
						|
        # allowed.
 | 
						|
        # Corresponds to the JSON property `reason`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :reason
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @eligible = args[:eligible] if args.key?(:eligible)
 | 
						|
          @reason = args[:reason] if args.key?(:reason)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # SloExclusion represents an exclusion in SLI calculation applies to all SLOs.
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Exclusion duration. No restrictions on the possible values.
 | 
						|
        # When an ongoing operation is taking longer than initially expected,
 | 
						|
        # an existing entry in the exclusion list can be updated by extending the
 | 
						|
        # duration. This is supported by the subsystem exporting eligibility data
 | 
						|
        # as long as such extension is committed at least 10 minutes before the
 | 
						|
        # original exclusion expiration - otherwise it is possible that there will
 | 
						|
        # be "gaps" in the exclusion application in the exported timeseries.
 | 
						|
        # Corresponds to the JSON property `duration`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :duration
 | 
						|
      
 | 
						|
        # Human-readable reason for the exclusion.
 | 
						|
        # This should be a static string (e.g. "Disruptive update in progress")
 | 
						|
        # and should not contain dynamically generated data (e.g. instance name).
 | 
						|
        # Can be left empty.
 | 
						|
        # Corresponds to the JSON property `reason`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :reason
 | 
						|
      
 | 
						|
        # Name of an SLI that this exclusion applies to. Can be left empty,
 | 
						|
        # signaling that the instance should be excluded from all SLIs defined
 | 
						|
        # in the service SLO configuration.
 | 
						|
        # Corresponds to the JSON property `sliName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :sli_name
 | 
						|
      
 | 
						|
        # Start time of the exclusion. No alignment (e.g. to a full minute) needed.
 | 
						|
        # Corresponds to the JSON property `startTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :start_time
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @duration = args[:duration] if args.key?(:duration)
 | 
						|
          @reason = args[:reason] if args.key?(:reason)
 | 
						|
          @sli_name = args[:sli_name] if args.key?(:sli_name)
 | 
						|
          @start_time = args[:start_time] if args.key?(:start_time)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # SloMetadata contains resources required for proper SLO classification of the
 | 
						|
      # instance.
 | 
						|
      class GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # SloEligibility is a tuple containing eligibility value: true if an instance
 | 
						|
        # is eligible for SLO calculation or false if it should be excluded from all
 | 
						|
        # SLO-related calculations along with a user-defined reason.
 | 
						|
        # Corresponds to the JSON property `eligibility`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility]
 | 
						|
        attr_accessor :eligibility
 | 
						|
      
 | 
						|
        # List of SLO exclusion windows. When multiple entries in the list match
 | 
						|
        # (matching the exclusion time-window against current time point)
 | 
						|
        # the exclusion reason used in the first matching entry will be published.
 | 
						|
        # It is not needed to include expired exclusion in this list, as only the
 | 
						|
        # currently applicable exclusions are taken into account by the eligibility
 | 
						|
        # exporting subsystem (the historical state of exclusions will be reflected
 | 
						|
        # in the historically produced timeseries regardless of the current state).
 | 
						|
        # This field can be used to mark the instance as temporary ineligible
 | 
						|
        # for the purpose of SLO calculation. For permanent instance SLO exclusion,
 | 
						|
        # use of custom instance eligibility is recommended. See 'eligibility' field
 | 
						|
        # below.
 | 
						|
        # Corresponds to the JSON property `exclusions`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1SloExclusion>]
 | 
						|
        attr_accessor :exclusions
 | 
						|
      
 | 
						|
        # Optional. List of nodes.
 | 
						|
        # Some producers need to use per-node metadata to calculate SLO.
 | 
						|
        # This field allows such producers to publish per-node SLO meta data,
 | 
						|
        # which will be consumed by SSA Eligibility Exporter and published in the
 | 
						|
        # form of per node metric to Monarch.
 | 
						|
        # Corresponds to the JSON property `nodes`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata>]
 | 
						|
        attr_accessor :nodes
 | 
						|
      
 | 
						|
        # Name of the SLO tier the Instance belongs to. This name will be expected to
 | 
						|
        # match the tiers specified in the service SLO configuration.
 | 
						|
        # Field is mandatory and must not be empty.
 | 
						|
        # Corresponds to the JSON property `tier`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :tier
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @eligibility = args[:eligibility] if args.key?(:eligibility)
 | 
						|
          @exclusions = args[:exclusions] if args.key?(:exclusions)
 | 
						|
          @nodes = args[:nodes] if args.key?(:nodes)
 | 
						|
          @tier = args[:tier] if args.key?(:tier)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Response message for
 | 
						|
      # ListDomains
 | 
						|
      class ListDomainsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A list of Managed Identities Service domains in the project.
 | 
						|
        # Corresponds to the JSON property `domains`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::Domain>]
 | 
						|
        attr_accessor :domains
 | 
						|
      
 | 
						|
        # A token to retrieve the next page of results, or empty if there are no more
 | 
						|
        # results in the list.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # A list of locations that could not be reached.
 | 
						|
        # Corresponds to the JSON property `unreachable`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :unreachable
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @domains = args[:domains] if args.key?(:domains)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @unreachable = args[:unreachable] if args.key?(:unreachable)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The response message for Locations.ListLocations.
 | 
						|
      class ListLocationsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A list of locations that matches the specified filter in the request.
 | 
						|
        # Corresponds to the JSON property `locations`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::Location>]
 | 
						|
        attr_accessor :locations
 | 
						|
      
 | 
						|
        # The standard List next-page token.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @locations = args[:locations] if args.key?(:locations)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The response message for Operations.ListOperations.
 | 
						|
      class ListOperationsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The standard List next-page token.
 | 
						|
        # Corresponds to the JSON property `nextPageToken`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :next_page_token
 | 
						|
      
 | 
						|
        # A list of operations that matches the specified filter in the request.
 | 
						|
        # Corresponds to the JSON property `operations`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::Operation>]
 | 
						|
        attr_accessor :operations
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
 | 
						|
          @operations = args[:operations] if args.key?(:operations)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # A resource that represents Google Cloud Platform location.
 | 
						|
      class Location
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The friendly name for this location, typically a nearby city name.
 | 
						|
        # For example, "Tokyo".
 | 
						|
        # Corresponds to the JSON property `displayName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :display_name
 | 
						|
      
 | 
						|
        # Cross-service attributes for the location. For example
 | 
						|
        # `"cloud.googleapis.com/region": "us-east1"`
 | 
						|
        # Corresponds to the JSON property `labels`
 | 
						|
        # @return [Hash<String,String>]
 | 
						|
        attr_accessor :labels
 | 
						|
      
 | 
						|
        # The canonical id for this location. For example: `"us-east1"`.
 | 
						|
        # Corresponds to the JSON property `locationId`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :location_id
 | 
						|
      
 | 
						|
        # Service-specific metadata. For example the available capacity at the given
 | 
						|
        # location.
 | 
						|
        # Corresponds to the JSON property `metadata`
 | 
						|
        # @return [Hash<String,Object>]
 | 
						|
        attr_accessor :metadata
 | 
						|
      
 | 
						|
        # Resource name for the location, which may vary between implementations.
 | 
						|
        # For example: `"projects/example-project/locations/us-east1"`
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @display_name = args[:display_name] if args.key?(:display_name)
 | 
						|
          @labels = args[:labels] if args.key?(:labels)
 | 
						|
          @location_id = args[:location_id] if args.key?(:location_id)
 | 
						|
          @metadata = args[:metadata] if args.key?(:metadata)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # This resource represents a long-running operation that is the result of a
 | 
						|
      # network API call.
 | 
						|
      class Operation
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # If the value is `false`, it means the operation is still in progress.
 | 
						|
        # If `true`, the operation is completed, and either `error` or `response` is
 | 
						|
        # available.
 | 
						|
        # Corresponds to the JSON property `done`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :done
 | 
						|
        alias_method :done?, :done
 | 
						|
      
 | 
						|
        # The `Status` type defines a logical error model that is suitable for
 | 
						|
        # different programming environments, including REST APIs and RPC APIs. It is
 | 
						|
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
 | 
						|
        # three pieces of data: error code, error message, and error details.
 | 
						|
        # You can find out more about this error model and how to work with it in the
 | 
						|
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
 | 
						|
        # Corresponds to the JSON property `error`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::Status]
 | 
						|
        attr_accessor :error
 | 
						|
      
 | 
						|
        # Service-specific metadata associated with the operation.  It typically
 | 
						|
        # contains progress information and common metadata such as create time.
 | 
						|
        # Some services might not provide such metadata.  Any method that returns a
 | 
						|
        # long-running operation should document the metadata type, if any.
 | 
						|
        # Corresponds to the JSON property `metadata`
 | 
						|
        # @return [Hash<String,Object>]
 | 
						|
        attr_accessor :metadata
 | 
						|
      
 | 
						|
        # The server-assigned name, which is only unique within the same service that
 | 
						|
        # originally returns it. If you use the default HTTP mapping, the
 | 
						|
        # `name` should be a resource name ending with `operations/`unique_id``.
 | 
						|
        # Corresponds to the JSON property `name`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :name
 | 
						|
      
 | 
						|
        # The normal response of the operation in case of success.  If the original
 | 
						|
        # method returns no data on success, such as `Delete`, the response is
 | 
						|
        # `google.protobuf.Empty`.  If the original method is standard
 | 
						|
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
 | 
						|
        # methods, the response should have the type `XxxResponse`, where `Xxx`
 | 
						|
        # is the original method name.  For example, if the original method name
 | 
						|
        # is `TakeSnapshot()`, the inferred response type is
 | 
						|
        # `TakeSnapshotResponse`.
 | 
						|
        # Corresponds to the JSON property `response`
 | 
						|
        # @return [Hash<String,Object>]
 | 
						|
        attr_accessor :response
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @done = args[:done] if args.key?(:done)
 | 
						|
          @error = args[:error] if args.key?(:error)
 | 
						|
          @metadata = args[:metadata] if args.key?(:metadata)
 | 
						|
          @name = args[:name] if args.key?(:name)
 | 
						|
          @response = args[:response] if args.key?(:response)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents the metadata of the long-running operation.
 | 
						|
      class OperationMetadata
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # [Output only] API version used to start the operation.
 | 
						|
        # Corresponds to the JSON property `apiVersion`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :api_version
 | 
						|
      
 | 
						|
        # [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 of 1,
 | 
						|
        # corresponding to `Code.CANCELLED`.
 | 
						|
        # Corresponds to the JSON property `cancelRequested`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :cancel_requested
 | 
						|
        alias_method :cancel_requested?, :cancel_requested
 | 
						|
      
 | 
						|
        # [Output only] The time the operation was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # [Output only] The time the operation finished running.
 | 
						|
        # Corresponds to the JSON property `endTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :end_time
 | 
						|
      
 | 
						|
        # [Output only] Human-readable status of the operation, if any.
 | 
						|
        # Corresponds to the JSON property `statusDetail`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :status_detail
 | 
						|
      
 | 
						|
        # [Output only] Server-defined resource path for the target of the operation.
 | 
						|
        # Corresponds to the JSON property `target`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target
 | 
						|
      
 | 
						|
        # [Output only] Name of the verb executed by the operation.
 | 
						|
        # Corresponds to the JSON property `verb`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :verb
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @api_version = args[:api_version] if args.key?(:api_version)
 | 
						|
          @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @end_time = args[:end_time] if args.key?(:end_time)
 | 
						|
          @status_detail = args[:status_detail] if args.key?(:status_detail)
 | 
						|
          @target = args[:target] if args.key?(:target)
 | 
						|
          @verb = args[:verb] if args.key?(:verb)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # An Identity and Access Management (IAM) policy, which specifies access
 | 
						|
      # controls for Google Cloud resources.
 | 
						|
      # A `Policy` is a collection of `bindings`. A `binding` binds one or more
 | 
						|
      # `members` to a single `role`. Members can be user accounts, service accounts,
 | 
						|
      # Google groups, and domains (such as G Suite). A `role` is a named list of
 | 
						|
      # permissions; each `role` can be an IAM predefined role or a user-created
 | 
						|
      # custom role.
 | 
						|
      # Optionally, a `binding` can specify a `condition`, which is a logical
 | 
						|
      # expression that allows access to a resource only if the expression evaluates
 | 
						|
      # to `true`. A condition can add constraints based on attributes of the
 | 
						|
      # request, the resource, or both.
 | 
						|
      # **JSON example:**
 | 
						|
      # `
 | 
						|
      # "bindings": [
 | 
						|
      # `
 | 
						|
      # "role": "roles/resourcemanager.organizationAdmin",
 | 
						|
      # "members": [
 | 
						|
      # "user:mike@example.com",
 | 
						|
      # "group:admins@example.com",
 | 
						|
      # "domain:google.com",
 | 
						|
      # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
 | 
						|
      # ]
 | 
						|
      # `,
 | 
						|
      # `
 | 
						|
      # "role": "roles/resourcemanager.organizationViewer",
 | 
						|
      # "members": ["user:eve@example.com"],
 | 
						|
      # "condition": `
 | 
						|
      # "title": "expirable access",
 | 
						|
      # "description": "Does not grant access after Sep 2020",
 | 
						|
      # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
 | 
						|
      # ",
 | 
						|
      # `
 | 
						|
      # `
 | 
						|
      # ],
 | 
						|
      # "etag": "BwWWja0YfJA=",
 | 
						|
      # "version": 3
 | 
						|
      # `
 | 
						|
      # **YAML example:**
 | 
						|
      # bindings:
 | 
						|
      # - members:
 | 
						|
      # - user:mike@example.com
 | 
						|
      # - group:admins@example.com
 | 
						|
      # - domain:google.com
 | 
						|
      # - serviceAccount:my-project-id@appspot.gserviceaccount.com
 | 
						|
      # role: roles/resourcemanager.organizationAdmin
 | 
						|
      # - members:
 | 
						|
      # - user:eve@example.com
 | 
						|
      # role: roles/resourcemanager.organizationViewer
 | 
						|
      # condition:
 | 
						|
      # title: expirable access
 | 
						|
      # description: Does not grant access after Sep 2020
 | 
						|
      # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
 | 
						|
      # - etag: BwWWja0YfJA=
 | 
						|
      # - version: 3
 | 
						|
      # For a description of IAM and its features, see the
 | 
						|
      # [IAM documentation](https://cloud.google.com/iam/docs/).
 | 
						|
      class Policy
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Associates a list of `members` to a `role`. Optionally, may specify a
 | 
						|
        # `condition` that determines how and when the `bindings` are applied. Each
 | 
						|
        # of the `bindings` must contain at least one member.
 | 
						|
        # Corresponds to the JSON property `bindings`
 | 
						|
        # @return [Array<Google::Apis::ManagedidentitiesV1beta1::Binding>]
 | 
						|
        attr_accessor :bindings
 | 
						|
      
 | 
						|
        # `etag` is used for optimistic concurrency control as a way to help
 | 
						|
        # prevent simultaneous updates of a policy from overwriting each other.
 | 
						|
        # It is strongly suggested that systems make use of the `etag` in the
 | 
						|
        # read-modify-write cycle to perform policy updates in order to avoid race
 | 
						|
        # conditions: An `etag` is returned in the response to `getIamPolicy`, and
 | 
						|
        # systems are expected to put that etag in the request to `setIamPolicy` to
 | 
						|
        # ensure that their change will be applied to the same version of the policy.
 | 
						|
        # **Important:** If you use IAM Conditions, you must include the `etag` field
 | 
						|
        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
 | 
						|
        # you to overwrite a version `3` policy with a version `1` policy, and all of
 | 
						|
        # the conditions in the version `3` policy are lost.
 | 
						|
        # Corresponds to the JSON property `etag`
 | 
						|
        # NOTE: Values are automatically base64 encoded/decoded in the client library.
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :etag
 | 
						|
      
 | 
						|
        # Specifies the format of the policy.
 | 
						|
        # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
 | 
						|
        # are rejected.
 | 
						|
        # Any operation that affects conditional role bindings must specify version
 | 
						|
        # `3`. This requirement applies to the following operations:
 | 
						|
        # * Getting a policy that includes a conditional role binding
 | 
						|
        # * Adding a conditional role binding to a policy
 | 
						|
        # * Changing a conditional role binding in a policy
 | 
						|
        # * Removing any role binding, with or without a condition, from a policy
 | 
						|
        # that includes conditions
 | 
						|
        # **Important:** If you use IAM Conditions, you must include the `etag` field
 | 
						|
        # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
 | 
						|
        # you to overwrite a version `3` policy with a version `1` policy, and all of
 | 
						|
        # the conditions in the version `3` policy are lost.
 | 
						|
        # If a policy does not include any conditions, operations on that policy may
 | 
						|
        # specify any valid version or leave the field unset.
 | 
						|
        # Corresponds to the JSON property `version`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :version
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @bindings = args[:bindings] if args.key?(:bindings)
 | 
						|
          @etag = args[:etag] if args.key?(:etag)
 | 
						|
          @version = args[:version] if args.key?(:version)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for
 | 
						|
      # ReconfigureTrust
 | 
						|
      class ReconfigureTrustRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Required. The target DNS server IP addresses to resolve the remote domain
 | 
						|
        # involved
 | 
						|
        # in the trust.
 | 
						|
        # Corresponds to the JSON property `targetDnsIpAddresses`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :target_dns_ip_addresses
 | 
						|
      
 | 
						|
        # Required. The fully-qualified target domain name which will be in trust with
 | 
						|
        # current
 | 
						|
        # domain.
 | 
						|
        # Corresponds to the JSON property `targetDomainName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target_domain_name
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @target_dns_ip_addresses = args[:target_dns_ip_addresses] if args.key?(:target_dns_ip_addresses)
 | 
						|
          @target_domain_name = args[:target_domain_name] if args.key?(:target_domain_name)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for
 | 
						|
      # ResetAdminPassword
 | 
						|
      class ResetAdminPasswordRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Response message for
 | 
						|
      # ResetAdminPassword
 | 
						|
      class ResetAdminPasswordResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A random password. See admin for more information.
 | 
						|
        # Corresponds to the JSON property `password`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :password
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @password = args[:password] if args.key?(:password)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for `SetIamPolicy` method.
 | 
						|
      class SetIamPolicyRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # An Identity and Access Management (IAM) policy, which specifies access
 | 
						|
        # controls for Google Cloud resources.
 | 
						|
        # A `Policy` is a collection of `bindings`. A `binding` binds one or more
 | 
						|
        # `members` to a single `role`. Members can be user accounts, service accounts,
 | 
						|
        # Google groups, and domains (such as G Suite). A `role` is a named list of
 | 
						|
        # permissions; each `role` can be an IAM predefined role or a user-created
 | 
						|
        # custom role.
 | 
						|
        # Optionally, a `binding` can specify a `condition`, which is a logical
 | 
						|
        # expression that allows access to a resource only if the expression evaluates
 | 
						|
        # to `true`. A condition can add constraints based on attributes of the
 | 
						|
        # request, the resource, or both.
 | 
						|
        # **JSON example:**
 | 
						|
        # `
 | 
						|
        # "bindings": [
 | 
						|
        # `
 | 
						|
        # "role": "roles/resourcemanager.organizationAdmin",
 | 
						|
        # "members": [
 | 
						|
        # "user:mike@example.com",
 | 
						|
        # "group:admins@example.com",
 | 
						|
        # "domain:google.com",
 | 
						|
        # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
 | 
						|
        # ]
 | 
						|
        # `,
 | 
						|
        # `
 | 
						|
        # "role": "roles/resourcemanager.organizationViewer",
 | 
						|
        # "members": ["user:eve@example.com"],
 | 
						|
        # "condition": `
 | 
						|
        # "title": "expirable access",
 | 
						|
        # "description": "Does not grant access after Sep 2020",
 | 
						|
        # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
 | 
						|
        # ",
 | 
						|
        # `
 | 
						|
        # `
 | 
						|
        # ],
 | 
						|
        # "etag": "BwWWja0YfJA=",
 | 
						|
        # "version": 3
 | 
						|
        # `
 | 
						|
        # **YAML example:**
 | 
						|
        # bindings:
 | 
						|
        # - members:
 | 
						|
        # - user:mike@example.com
 | 
						|
        # - group:admins@example.com
 | 
						|
        # - domain:google.com
 | 
						|
        # - serviceAccount:my-project-id@appspot.gserviceaccount.com
 | 
						|
        # role: roles/resourcemanager.organizationAdmin
 | 
						|
        # - members:
 | 
						|
        # - user:eve@example.com
 | 
						|
        # role: roles/resourcemanager.organizationViewer
 | 
						|
        # condition:
 | 
						|
        # title: expirable access
 | 
						|
        # description: Does not grant access after Sep 2020
 | 
						|
        # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
 | 
						|
        # - etag: BwWWja0YfJA=
 | 
						|
        # - version: 3
 | 
						|
        # For a description of IAM and its features, see the
 | 
						|
        # [IAM documentation](https://cloud.google.com/iam/docs/).
 | 
						|
        # Corresponds to the JSON property `policy`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::Policy]
 | 
						|
        attr_accessor :policy
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @policy = args[:policy] if args.key?(:policy)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # The `Status` type defines a logical error model that is suitable for
 | 
						|
      # different programming environments, including REST APIs and RPC APIs. It is
 | 
						|
      # used by [gRPC](https://github.com/grpc). Each `Status` message contains
 | 
						|
      # three pieces of data: error code, error message, and error details.
 | 
						|
      # You can find out more about this error model and how to work with it in the
 | 
						|
      # [API Design Guide](https://cloud.google.com/apis/design/errors).
 | 
						|
      class Status
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The status code, which should be an enum value of google.rpc.Code.
 | 
						|
        # Corresponds to the JSON property `code`
 | 
						|
        # @return [Fixnum]
 | 
						|
        attr_accessor :code
 | 
						|
      
 | 
						|
        # A list of messages that carry the error details.  There is a common set of
 | 
						|
        # message types for APIs to use.
 | 
						|
        # Corresponds to the JSON property `details`
 | 
						|
        # @return [Array<Hash<String,Object>>]
 | 
						|
        attr_accessor :details
 | 
						|
      
 | 
						|
        # A developer-facing error message, which should be in English. Any
 | 
						|
        # user-facing error message should be localized and sent in the
 | 
						|
        # google.rpc.Status.details field, or localized by the client.
 | 
						|
        # Corresponds to the JSON property `message`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :message
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @code = args[:code] if args.key?(:code)
 | 
						|
          @details = args[:details] if args.key?(:details)
 | 
						|
          @message = args[:message] if args.key?(:message)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for `TestIamPermissions` method.
 | 
						|
      class TestIamPermissionsRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # The set of permissions to check for the `resource`. Permissions with
 | 
						|
        # wildcards (such as '*' or 'storage.*') are not allowed. For more
 | 
						|
        # information see
 | 
						|
        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
 | 
						|
        # Corresponds to the JSON property `permissions`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :permissions
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @permissions = args[:permissions] if args.key?(:permissions)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Response message for `TestIamPermissions` method.
 | 
						|
      class TestIamPermissionsResponse
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # A subset of `TestPermissionsRequest.permissions` that the caller is
 | 
						|
        # allowed.
 | 
						|
        # Corresponds to the JSON property `permissions`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :permissions
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @permissions = args[:permissions] if args.key?(:permissions)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Represents a relationship between two domains. This allows a controller in
 | 
						|
      # one domain to authenticate a user in another domain.
 | 
						|
      class TrustProp
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Output only. The time the instance was created.
 | 
						|
        # Corresponds to the JSON property `createTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :create_time
 | 
						|
      
 | 
						|
        # Output only. The last heartbeat time when the trust was known to be
 | 
						|
        # connected.
 | 
						|
        # Corresponds to the JSON property `lastTrustHeartbeatTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :last_trust_heartbeat_time
 | 
						|
      
 | 
						|
        # The trust authentication type, which decides whether the trusted side has
 | 
						|
        # forest/domain wide access or selective access to an approved set of
 | 
						|
        # resources.
 | 
						|
        # Corresponds to the JSON property `selectiveAuthentication`
 | 
						|
        # @return [Boolean]
 | 
						|
        attr_accessor :selective_authentication
 | 
						|
        alias_method :selective_authentication?, :selective_authentication
 | 
						|
      
 | 
						|
        # Output only. The current state of the trust.
 | 
						|
        # Corresponds to the JSON property `state`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :state
 | 
						|
      
 | 
						|
        # Output only. Additional information about the current state of the
 | 
						|
        # trust, if available.
 | 
						|
        # Corresponds to the JSON property `stateDescription`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :state_description
 | 
						|
      
 | 
						|
        # The target DNS server IP addresses which can resolve the remote domain
 | 
						|
        # involved in the trust.
 | 
						|
        # Corresponds to the JSON property `targetDnsIpAddresses`
 | 
						|
        # @return [Array<String>]
 | 
						|
        attr_accessor :target_dns_ip_addresses
 | 
						|
      
 | 
						|
        # The fully qualified target domain name which will be in trust with the
 | 
						|
        # current domain.
 | 
						|
        # Corresponds to the JSON property `targetDomainName`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :target_domain_name
 | 
						|
      
 | 
						|
        # The trust direction, which decides if the current domain is trusted,
 | 
						|
        # trusting, or both.
 | 
						|
        # Corresponds to the JSON property `trustDirection`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :trust_direction
 | 
						|
      
 | 
						|
        # Input only, and will not be stored. The trust secret used for the handshake
 | 
						|
        # with the target domain.
 | 
						|
        # Corresponds to the JSON property `trustHandshakeSecret`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :trust_handshake_secret
 | 
						|
      
 | 
						|
        # The type of trust represented by the trust resource.
 | 
						|
        # Corresponds to the JSON property `trustType`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :trust_type
 | 
						|
      
 | 
						|
        # Output only. The last update time.
 | 
						|
        # Corresponds to the JSON property `updateTime`
 | 
						|
        # @return [String]
 | 
						|
        attr_accessor :update_time
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @create_time = args[:create_time] if args.key?(:create_time)
 | 
						|
          @last_trust_heartbeat_time = args[:last_trust_heartbeat_time] if args.key?(:last_trust_heartbeat_time)
 | 
						|
          @selective_authentication = args[:selective_authentication] if args.key?(:selective_authentication)
 | 
						|
          @state = args[:state] if args.key?(:state)
 | 
						|
          @state_description = args[:state_description] if args.key?(:state_description)
 | 
						|
          @target_dns_ip_addresses = args[:target_dns_ip_addresses] if args.key?(:target_dns_ip_addresses)
 | 
						|
          @target_domain_name = args[:target_domain_name] if args.key?(:target_domain_name)
 | 
						|
          @trust_direction = args[:trust_direction] if args.key?(:trust_direction)
 | 
						|
          @trust_handshake_secret = args[:trust_handshake_secret] if args.key?(:trust_handshake_secret)
 | 
						|
          @trust_type = args[:trust_type] if args.key?(:trust_type)
 | 
						|
          @update_time = args[:update_time] if args.key?(:update_time)
 | 
						|
        end
 | 
						|
      end
 | 
						|
      
 | 
						|
      # Request message for
 | 
						|
      # ValidateTrust
 | 
						|
      class ValidateTrustRequest
 | 
						|
        include Google::Apis::Core::Hashable
 | 
						|
      
 | 
						|
        # Represents a relationship between two domains. This allows a controller in
 | 
						|
        # one domain to authenticate a user in another domain.
 | 
						|
        # Corresponds to the JSON property `trust`
 | 
						|
        # @return [Google::Apis::ManagedidentitiesV1beta1::TrustProp]
 | 
						|
        attr_accessor :trust_prop
 | 
						|
      
 | 
						|
        def initialize(**args)
 | 
						|
           update!(**args)
 | 
						|
        end
 | 
						|
      
 | 
						|
        # Update properties of this object
 | 
						|
        def update!(**args)
 | 
						|
          @trust_prop = args[:trust_prop] if args.key?(:trust_prop)
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |