diff --git a/api_names_out.yaml b/api_names_out.yaml index eec741fdc..022d22a8f 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -139234,6 +139234,151 @@ "/servicecontrol:v2/servicecontrol.services.check/serviceName": service_name "/servicecontrol:v2/servicecontrol.services.report": report_service "/servicecontrol:v2/servicecontrol.services.report/serviceName": service_name +"/servicedirectory:v1/Binding": binding +"/servicedirectory:v1/Binding/condition": condition +"/servicedirectory:v1/Binding/members": members +"/servicedirectory:v1/Binding/members/member": member +"/servicedirectory:v1/Binding/role": role +"/servicedirectory:v1/Empty": empty +"/servicedirectory:v1/Endpoint": endpoint +"/servicedirectory:v1/Endpoint/address": address +"/servicedirectory:v1/Endpoint/annotations": annotations +"/servicedirectory:v1/Endpoint/annotations/annotation": annotation +"/servicedirectory:v1/Endpoint/name": name +"/servicedirectory:v1/Endpoint/port": port +"/servicedirectory:v1/Expr": expr +"/servicedirectory:v1/Expr/description": description +"/servicedirectory:v1/Expr/expression": expression +"/servicedirectory:v1/Expr/location": location +"/servicedirectory:v1/Expr/title": title +"/servicedirectory:v1/GetIamPolicyRequest": get_iam_policy_request +"/servicedirectory:v1/GetIamPolicyRequest/options": options +"/servicedirectory:v1/GetPolicyOptions": get_policy_options +"/servicedirectory:v1/GetPolicyOptions/requestedPolicyVersion": requested_policy_version +"/servicedirectory:v1/ListEndpointsResponse": list_endpoints_response +"/servicedirectory:v1/ListEndpointsResponse/endpoints": endpoints +"/servicedirectory:v1/ListEndpointsResponse/endpoints/endpoint": endpoint +"/servicedirectory:v1/ListEndpointsResponse/nextPageToken": next_page_token +"/servicedirectory:v1/ListLocationsResponse": list_locations_response +"/servicedirectory:v1/ListLocationsResponse/locations": locations +"/servicedirectory:v1/ListLocationsResponse/locations/location": location +"/servicedirectory:v1/ListLocationsResponse/nextPageToken": next_page_token +"/servicedirectory:v1/ListNamespacesResponse": list_namespaces_response +"/servicedirectory:v1/ListNamespacesResponse/namespaces": namespaces +"/servicedirectory:v1/ListNamespacesResponse/namespaces/namespace": namespace +"/servicedirectory:v1/ListNamespacesResponse/nextPageToken": next_page_token +"/servicedirectory:v1/ListServicesResponse": list_services_response +"/servicedirectory:v1/ListServicesResponse/nextPageToken": next_page_token +"/servicedirectory:v1/ListServicesResponse/services": services +"/servicedirectory:v1/ListServicesResponse/services/service": service +"/servicedirectory:v1/Location": location +"/servicedirectory:v1/Location/displayName": display_name +"/servicedirectory:v1/Location/labels": labels +"/servicedirectory:v1/Location/labels/label": label +"/servicedirectory:v1/Location/locationId": location_id +"/servicedirectory:v1/Location/metadata": metadata +"/servicedirectory:v1/Location/metadata/metadatum": metadatum +"/servicedirectory:v1/Location/name": name +"/servicedirectory:v1/Namespace": namespace +"/servicedirectory:v1/Namespace/labels": labels +"/servicedirectory:v1/Namespace/labels/label": label +"/servicedirectory:v1/Namespace/name": name +"/servicedirectory:v1/Policy": policy +"/servicedirectory:v1/Policy/bindings": bindings +"/servicedirectory:v1/Policy/bindings/binding": binding +"/servicedirectory:v1/Policy/etag": etag +"/servicedirectory:v1/Policy/version": version +"/servicedirectory:v1/ResolveServiceRequest": resolve_service_request +"/servicedirectory:v1/ResolveServiceRequest/endpointFilter": endpoint_filter +"/servicedirectory:v1/ResolveServiceRequest/maxEndpoints": max_endpoints +"/servicedirectory:v1/ResolveServiceResponse": resolve_service_response +"/servicedirectory:v1/ResolveServiceResponse/service": service +"/servicedirectory:v1/Service": service +"/servicedirectory:v1/Service/annotations": annotations +"/servicedirectory:v1/Service/annotations/annotation": annotation +"/servicedirectory:v1/Service/endpoints": endpoints +"/servicedirectory:v1/Service/endpoints/endpoint": endpoint +"/servicedirectory:v1/Service/name": name +"/servicedirectory:v1/SetIamPolicyRequest": set_iam_policy_request +"/servicedirectory:v1/SetIamPolicyRequest/policy": policy +"/servicedirectory:v1/TestIamPermissionsRequest": test_iam_permissions_request +"/servicedirectory:v1/TestIamPermissionsRequest/permissions": permissions +"/servicedirectory:v1/TestIamPermissionsRequest/permissions/permission": permission +"/servicedirectory:v1/TestIamPermissionsResponse": test_iam_permissions_response +"/servicedirectory:v1/TestIamPermissionsResponse/permissions": permissions +"/servicedirectory:v1/TestIamPermissionsResponse/permissions/permission": permission +"/servicedirectory:v1/fields": fields +"/servicedirectory:v1/key": key +"/servicedirectory:v1/quotaUser": quota_user +"/servicedirectory:v1/servicedirectory.projects.locations.get": get_project_location +"/servicedirectory:v1/servicedirectory.projects.locations.get/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.list": list_project_locations +"/servicedirectory:v1/servicedirectory.projects.locations.list/filter": filter +"/servicedirectory:v1/servicedirectory.projects.locations.list/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.list/pageSize": page_size +"/servicedirectory:v1/servicedirectory.projects.locations.list/pageToken": page_token +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.create": create_project_location_namespace +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.create/namespaceId": namespace_id +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.create/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.delete": delete_project_location_namespace +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.delete/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.get": get_project_location_namespace +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.get/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.getIamPolicy": get_namespace_iam_policy +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.getIamPolicy/resource": resource +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list": list_project_location_namespaces +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list/filter": filter +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list/orderBy": order_by +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list/pageSize": page_size +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list/pageToken": page_token +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.list/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.patch": patch_project_location_namespace +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.patch/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.patch/updateMask": update_mask +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.create": create_project_location_namespace_service +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.create/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.create/serviceId": service_id +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.delete": delete_project_location_namespace_service +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.delete/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.create": create_project_location_namespace_service_endpoint +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.create/endpointId": endpoint_id +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.create/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.delete": delete_project_location_namespace_service_endpoint +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.delete/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.get": get_project_location_namespace_service_endpoint +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.get/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list": list_project_location_namespace_service_endpoints +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list/filter": filter +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list/orderBy": order_by +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list/pageSize": page_size +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list/pageToken": page_token +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.list/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.patch": patch_project_location_namespace_service_endpoint +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.patch/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.endpoints.patch/updateMask": update_mask +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.get": get_project_location_namespace_service +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.get/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.getIamPolicy": get_service_iam_policy +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.getIamPolicy/resource": resource +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list": list_project_location_namespace_services +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list/filter": filter +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list/orderBy": order_by +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list/pageSize": page_size +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list/pageToken": page_token +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.list/parent": parent +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.patch": patch_project_location_namespace_service +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.patch/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.patch/updateMask": update_mask +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.resolve": resolve_service +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.resolve/name": name +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.setIamPolicy": set_service_iam_policy +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.setIamPolicy/resource": resource +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.testIamPermissions": test_service_iam_permissions +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.services.testIamPermissions/resource": resource +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.setIamPolicy": set_namespace_iam_policy +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.setIamPolicy/resource": resource +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.testIamPermissions": test_namespace_iam_permissions +"/servicedirectory:v1/servicedirectory.projects.locations.namespaces.testIamPermissions/resource": resource "/servicedirectory:v1beta1/Binding": binding "/servicedirectory:v1beta1/Binding/bindingId": binding_id "/servicedirectory:v1beta1/Binding/condition": condition diff --git a/generated/google/apis/servicedirectory_v1.rb b/generated/google/apis/servicedirectory_v1.rb new file mode 100644 index 000000000..4e6c42209 --- /dev/null +++ b/generated/google/apis/servicedirectory_v1.rb @@ -0,0 +1,35 @@ +# 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 'google/apis/servicedirectory_v1/service.rb' +require 'google/apis/servicedirectory_v1/classes.rb' +require 'google/apis/servicedirectory_v1/representations.rb' + +module Google + module Apis + # Service Directory API + # + # Service Directory is a platform for discovering, publishing, and connecting + # services. + # + # @see https://cloud.google.com/service-directory + module ServicedirectoryV1 + VERSION = 'V1' + REVISION = '20201112' + + # View and manage your data across Google Cloud Platform services + AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform' + end + end +end diff --git a/generated/google/apis/servicedirectory_v1/classes.rb b/generated/google/apis/servicedirectory_v1/classes.rb new file mode 100644 index 000000000..8cf5048f9 --- /dev/null +++ b/generated/google/apis/servicedirectory_v1/classes.rb @@ -0,0 +1,721 @@ +# 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 ServicedirectoryV1 + + # 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::ServicedirectoryV1::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] + 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 + + # 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 + + # An individual endpoint that provides a service. The service must already exist + # to create an endpoint. + class Endpoint + include Google::Apis::Core::Hashable + + # Optional. An IPv4 or IPv6 address. Service Directory will reject bad addresses + # like: "8.8.8" "8.8.8.8:53" "test:bad:address" "[::1]" "[::1]:8080" Limited to + # 45 characters. + # Corresponds to the JSON property `address` + # @return [String] + attr_accessor :address + + # Optional. Annotations for the endpoint. This data can be consumed by service + # clients. Restrictions: - The entire annotations dictionary may contain up to + # 512 characters, spread accoss all key-value pairs. Annotations that goes + # beyond any these limits will be rejected. - Valid annotation keys have two + # segments: an optional prefix and name, separated by a slash (/). The name + # segment is required and must be 63 characters or less, beginning and ending + # with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), + # dots (.), and alphanumerics between. The prefix is optional. If specified, the + # prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), + # not longer than 253 characters in total, followed by a slash (/). Annotations + # that fails to meet these requirements will be rejected. - The '(*.)google.com/' + # and '(*.)googleapis.com/' prefixes are reserved for system annotations + # managed by Service Directory. If the user tries to write to these keyspaces, + # those entries will be silently ignored by the system. Note: This field is + # equivalent to the 'metadata' field in the v1beta1 API. They have the same + # syntax and read/write to the same location in Service Directory. + # Corresponds to the JSON property `annotations` + # @return [Hash] + attr_accessor :annotations + + # Immutable. The resource name for the endpoint in the format 'projects/*/ + # locations/*/namespaces/*/services/*/endpoints/*'. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Optional. Service Directory will reject values outside of [0, 65535]. + # Corresponds to the JSON property `port` + # @return [Fixnum] + attr_accessor :port + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @address = args[:address] if args.key?(:address) + @annotations = args[:annotations] if args.key?(:annotations) + @name = args[:name] if args.key?(:name) + @port = args[:port] if args.key?(:port) + 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 + + # Request message for `GetIamPolicy` method. + class GetIamPolicyRequest + include Google::Apis::Core::Hashable + + # Encapsulates settings provided to GetIamPolicy. + # Corresponds to the JSON property `options` + # @return [Google::Apis::ServicedirectoryV1::GetPolicyOptions] + attr_accessor :options + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @options = args[:options] if args.key?(:options) + end + end + + # Encapsulates settings provided to GetIamPolicy. + class GetPolicyOptions + include Google::Apis::Core::Hashable + + # Optional. The policy format version to be returned. Valid values are 0, 1, and + # 3. Requests specifying an invalid value will be rejected. Requests for + # policies with any conditional bindings must specify version 3. Policies + # without any conditional bindings may specify any valid value or leave the + # field unset. To learn which resources support conditions in their IAM policies, + # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/ + # resource-policies). + # Corresponds to the JSON property `requestedPolicyVersion` + # @return [Fixnum] + attr_accessor :requested_policy_version + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version) + end + end + + # The response message for RegistrationService.ListEndpoints. + class ListEndpointsResponse + include Google::Apis::Core::Hashable + + # The list of endpoints. + # Corresponds to the JSON property `endpoints` + # @return [Array] + attr_accessor :endpoints + + # 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 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @endpoints = args[:endpoints] if args.key?(:endpoints) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + 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] + 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 RegistrationService.ListNamespaces. + class ListNamespacesResponse + include Google::Apis::Core::Hashable + + # The list of namespaces. + # Corresponds to the JSON property `namespaces` + # @return [Array] + attr_accessor :namespaces + + # 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 + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @namespaces = args[:namespaces] if args.key?(:namespaces) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + end + end + + # The response message for RegistrationService.ListServices. + class ListServicesResponse + include Google::Apis::Core::Hashable + + # 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 + + # The list of services. + # Corresponds to the JSON property `services` + # @return [Array] + attr_accessor :services + + 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) + @services = args[:services] if args.key?(:services) + 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] + 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] + 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 + + # A container for services. Namespaces allow administrators to group services + # together and define permissions for a collection of services. + class Namespace + include Google::Apis::Core::Hashable + + # Optional. Resource labels associated with this Namespace. No more than 64 user + # labels can be associated with a given resource. Label keys and values can be + # no longer than 63 characters. + # Corresponds to the JSON property `labels` + # @return [Hash] + attr_accessor :labels + + # Immutable. The resource name for the namespace in the format 'projects/*/ + # locations/*/namespaces/*'. + # 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) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + 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. For some types of Google Cloud resources, + # a `binding` can also 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. To learn which resources support conditions in their IAM policies, + # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/ + # resource-policies). **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] + 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. To learn which resources support conditions in their + # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/ + # conditions/resource-policies). + # 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 + + # The request message for LookupService.ResolveService. Looks up a service by + # its name, returns the service and its endpoints. + class ResolveServiceRequest + include Google::Apis::Core::Hashable + + # Optional. The filter applied to the endpoints of the resolved service. General + # filter string syntax: () can be "name" or "metadata." for map field. can be "<, + # >, <=, >=, !=, =, :". Of which ":" means HAS and is roughly the same as "=". + # must be the same data type as the field. can be "AND, OR, NOT". Examples of + # valid filters: * "metadata.owner" returns Endpoints that have a label with the + # key "owner", this is the same as "metadata:owner" * "metadata.protocol=gRPC" + # returns Endpoints that have key/value "protocol=gRPC" * "metadata.owner!=sd + # AND metadata.foo=bar" returns Endpoints that have "owner" field in metadata + # with a value that is not "sd" AND have the key/value foo=bar. + # Corresponds to the JSON property `endpointFilter` + # @return [String] + attr_accessor :endpoint_filter + + # Optional. The maximum number of endpoints to return. Defaults to 25. Maximum + # is 100. If a value less than one is specified, the Default is used. If a value + # greater than the Maximum is specified, the Maximum is used. + # Corresponds to the JSON property `maxEndpoints` + # @return [Fixnum] + attr_accessor :max_endpoints + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @endpoint_filter = args[:endpoint_filter] if args.key?(:endpoint_filter) + @max_endpoints = args[:max_endpoints] if args.key?(:max_endpoints) + end + end + + # The response message for LookupService.ResolveService. + class ResolveServiceResponse + include Google::Apis::Core::Hashable + + # An individual service. A service contains a name and optional metadata. A + # service must exist before endpoints can be added to it. + # Corresponds to the JSON property `service` + # @return [Google::Apis::ServicedirectoryV1::Service] + attr_accessor :service + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @service = args[:service] if args.key?(:service) + end + end + + # An individual service. A service contains a name and optional metadata. A + # service must exist before endpoints can be added to it. + class Service + include Google::Apis::Core::Hashable + + # Optional. Annotations for the service. This data can be consumed by service + # clients. Restrictions: - The entire annotations dictionary may contain up to + # 2000 characters, spread accoss all key-value pairs. Annotations that goes + # beyond any these limits will be rejected. - Valid annotation keys have two + # segments: an optional prefix and name, separated by a slash (/). The name + # segment is required and must be 63 characters or less, beginning and ending + # with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), + # dots (.), and alphanumerics between. The prefix is optional. If specified, the + # prefix must be a DNS subdomain: a series of DNS labels separated by dots (.), + # not longer than 253 characters in total, followed by a slash (/). Annotations + # that fails to meet these requirements will be rejected. - The '(*.)google.com/' + # and '(*.)googleapis.com/' prefixes are reserved for system annotations + # managed by Service Directory. If the user tries to write to these keyspaces, + # those entries will be silently ignored by the system. Note: This field is + # equivalent to the 'metadata' field in the v1beta1 API. They have the same + # syntax and read/write to the same location in Service Directory. + # Corresponds to the JSON property `annotations` + # @return [Hash] + attr_accessor :annotations + + # Output only. Endpoints associated with this service. Returned on LookupService. + # Resolve. Control plane clients should use RegistrationService.ListEndpoints. + # Corresponds to the JSON property `endpoints` + # @return [Array] + attr_accessor :endpoints + + # Immutable. The resource name for the service in the format 'projects/*/ + # locations/*/namespaces/*/services/*'. + # 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) + @annotations = args[:annotations] if args.key?(:annotations) + @endpoints = args[:endpoints] if args.key?(:endpoints) + @name = args[:name] if args.key?(:name) + 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. For some types of Google Cloud resources, + # a `binding` can also 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. To learn which resources support conditions in their IAM policies, + # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/ + # resource-policies). **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::ServicedirectoryV1::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 + + # 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] + 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] + 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 + end + end +end diff --git a/generated/google/apis/servicedirectory_v1/representations.rb b/generated/google/apis/servicedirectory_v1/representations.rb new file mode 100644 index 000000000..7bf5d28b8 --- /dev/null +++ b/generated/google/apis/servicedirectory_v1/representations.rb @@ -0,0 +1,304 @@ +# 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 ServicedirectoryV1 + + class Binding + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Empty + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Endpoint + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Expr + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GetPolicyOptions + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListEndpointsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListLocationsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListNamespacesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ListServicesResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Location + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Namespace + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Policy + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ResolveServiceRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ResolveServiceResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Service + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SetIamPolicyRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class TestIamPermissionsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class Binding + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :condition, as: 'condition', class: Google::Apis::ServicedirectoryV1::Expr, decorator: Google::Apis::ServicedirectoryV1::Expr::Representation + + collection :members, as: 'members' + property :role, as: 'role' + end + end + + class Empty + # @private + class Representation < Google::Apis::Core::JsonRepresentation + end + end + + class Endpoint + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :address, as: 'address' + hash :annotations, as: 'annotations' + property :name, as: 'name' + property :port, as: 'port' + end + end + + class Expr + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :description, as: 'description' + property :expression, as: 'expression' + property :location, as: 'location' + property :title, as: 'title' + end + end + + class GetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :options, as: 'options', class: Google::Apis::ServicedirectoryV1::GetPolicyOptions, decorator: Google::Apis::ServicedirectoryV1::GetPolicyOptions::Representation + + end + end + + class GetPolicyOptions + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :requested_policy_version, as: 'requestedPolicyVersion' + end + end + + class ListEndpointsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :endpoints, as: 'endpoints', class: Google::Apis::ServicedirectoryV1::Endpoint, decorator: Google::Apis::ServicedirectoryV1::Endpoint::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class ListLocationsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :locations, as: 'locations', class: Google::Apis::ServicedirectoryV1::Location, decorator: Google::Apis::ServicedirectoryV1::Location::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class ListNamespacesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :namespaces, as: 'namespaces', class: Google::Apis::ServicedirectoryV1::Namespace, decorator: Google::Apis::ServicedirectoryV1::Namespace::Representation + + property :next_page_token, as: 'nextPageToken' + end + end + + class ListServicesResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :services, as: 'services', class: Google::Apis::ServicedirectoryV1::Service, decorator: Google::Apis::ServicedirectoryV1::Service::Representation + + end + end + + class Location + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :display_name, as: 'displayName' + hash :labels, as: 'labels' + property :location_id, as: 'locationId' + hash :metadata, as: 'metadata' + property :name, as: 'name' + end + end + + class Namespace + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :labels, as: 'labels' + property :name, as: 'name' + end + end + + class Policy + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :bindings, as: 'bindings', class: Google::Apis::ServicedirectoryV1::Binding, decorator: Google::Apis::ServicedirectoryV1::Binding::Representation + + property :etag, :base64 => true, as: 'etag' + property :version, as: 'version' + end + end + + class ResolveServiceRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :endpoint_filter, as: 'endpointFilter' + property :max_endpoints, as: 'maxEndpoints' + end + end + + class ResolveServiceResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :service, as: 'service', class: Google::Apis::ServicedirectoryV1::Service, decorator: Google::Apis::ServicedirectoryV1::Service::Representation + + end + end + + class Service + # @private + class Representation < Google::Apis::Core::JsonRepresentation + hash :annotations, as: 'annotations' + collection :endpoints, as: 'endpoints', class: Google::Apis::ServicedirectoryV1::Endpoint, decorator: Google::Apis::ServicedirectoryV1::Endpoint::Representation + + property :name, as: 'name' + end + end + + class SetIamPolicyRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :policy, as: 'policy', class: Google::Apis::ServicedirectoryV1::Policy, decorator: Google::Apis::ServicedirectoryV1::Policy::Representation + + end + end + + class TestIamPermissionsRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + + class TestIamPermissionsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :permissions, as: 'permissions' + end + end + end + end +end diff --git a/generated/google/apis/servicedirectory_v1/service.rb b/generated/google/apis/servicedirectory_v1/service.rb new file mode 100644 index 000000000..2d77c749f --- /dev/null +++ b/generated/google/apis/servicedirectory_v1/service.rb @@ -0,0 +1,957 @@ +# 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 '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 ServicedirectoryV1 + # Service Directory API + # + # Service Directory is a platform for discovering, publishing, and connecting + # services. + # + # @example + # require 'google/apis/servicedirectory_v1' + # + # Servicedirectory = Google::Apis::ServicedirectoryV1 # Alias the module + # service = Servicedirectory::ServiceDirectoryService.new + # + # @see https://cloud.google.com/service-directory + class ServiceDirectoryService < Google::Apis::Core::BaseService + # @return [String] + # API key. Your API key identifies your project and provides you with API access, + # quota, and reports. Required unless you provide an OAuth 2.0 token. + attr_accessor :key + + # @return [String] + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + attr_accessor :quota_user + + def initialize + super('https://servicedirectory.googleapis.com/', '') + @batch_path = 'batch' + end + + # Gets information about a location. + # @param [String] name + # Resource name for the location. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Location] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Location] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_location(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Location::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Location + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists information about the supported locations for this service. + # @param [String] name + # The resource that owns the locations collection, if applicable. + # @param [String] filter + # The standard list filter. + # @param [Fixnum] page_size + # The standard list page size. + # @param [String] page_token + # The standard list page token. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::ListLocationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::ListLocationsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_locations(name, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}/locations', options) + command.response_representation = Google::Apis::ServicedirectoryV1::ListLocationsResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::ListLocationsResponse + command.params['name'] = name unless name.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a namespace, and returns the new Namespace. + # @param [String] parent + # Required. The resource name of the project and location the namespace will be + # created in. + # @param [Google::Apis::ServicedirectoryV1::Namespace] namespace_object + # @param [String] namespace_id + # Required. The Resource ID must be 1-63 characters long, and comply with + # RFC1035. Specifically, the name must be 1-63 characters long and match the + # regular expression `[a-z](?:[-a-z0-9]`0,61`[a-z0-9])?` which means the first + # character must be a lowercase letter, and all following characters must be a + # dash, lowercase letter, or digit, except the last character, which cannot be a + # dash. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Namespace] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Namespace] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_location_namespace(parent, namespace_object = nil, namespace_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+parent}/namespaces', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Namespace::Representation + command.request_object = namespace_object + command.response_representation = Google::Apis::ServicedirectoryV1::Namespace::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Namespace + command.params['parent'] = parent unless parent.nil? + command.query['namespaceId'] = namespace_id unless namespace_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes a namespace. This also deletes all services and endpoints in the + # namespace. + # @param [String] name + # Required. The name of the namespace to delete. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_location_namespace(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Empty::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a namespace. + # @param [String] name + # Required. The name of the namespace to retrieve. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Namespace] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Namespace] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_location_namespace(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Namespace::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Namespace + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the IAM Policy for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_namespace_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ServicedirectoryV1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::Policy::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists all namespaces. + # @param [String] parent + # Required. The resource name of the project and location whose namespaces we'd + # like to list. + # @param [String] filter + # Optional. The filter to list result by. General filter string syntax: () can + # be "name", or "labels." for map field. can be "<, >, <=, >=, !=, =, :". Of + # which ":" means HAS, and is roughly the same as "=". must be the same data + # type as field. can be "AND, OR, NOT". Examples of valid filters: * "labels. + # owner" returns Namespaces that have a label with the key "owner" this is the + # same as "labels:owner". * "labels.protocol=gRPC" returns Namespaces that have + # key/value "protocol=gRPC". * "name>projects/my-project/locations/us-east/ + # namespaces/namespace-c" returns Namespaces that have name that is + # alphabetically later than the string, so "namespace-e" will be returned but " + # namespace-a" will not be. * "labels.owner!=sd AND labels.foo=bar" returns + # Namespaces that have "owner" in label key but value is not "sd" AND have key/ + # value foo=bar. * "doesnotexist.foo=bar" returns an empty list. Note that + # Namespace doesn't have a field called "doesnotexist". Since the filter does + # not match any Namespaces, it returns no results. + # @param [String] order_by + # Optional. The order to list result by. General order by string syntax: () (,) + # allows values `"name"` ascending or descending order by . If this is left + # blank, "asc" is used. Note that an empty order_by string result in default + # order, which is order by name in ascending order. + # @param [Fixnum] page_size + # Optional. The maximum number of items to return. + # @param [String] page_token + # Optional. The next_page_token value returned from a previous List request, if + # any. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::ListNamespacesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::ListNamespacesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_location_namespaces(parent, filter: nil, order_by: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+parent}/namespaces', options) + command.response_representation = Google::Apis::ServicedirectoryV1::ListNamespacesResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::ListNamespacesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['orderBy'] = order_by unless order_by.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates a namespace. + # @param [String] name + # Immutable. The resource name for the namespace in the format 'projects/*/ + # locations/*/namespaces/*'. + # @param [Google::Apis::ServicedirectoryV1::Namespace] namespace_object + # @param [String] update_mask + # Required. List of fields to be updated in this request. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Namespace] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Namespace] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_location_namespace(name, namespace_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1/{+name}', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Namespace::Representation + command.request_object = namespace_object + command.response_representation = Google::Apis::ServicedirectoryV1::Namespace::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Namespace + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the IAM Policy for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_namespace_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ServicedirectoryV1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::Policy::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Tests IAM permissions for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_namespace_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ServicedirectoryV1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a service, and returns the new Service. + # @param [String] parent + # Required. The resource name of the namespace this service will belong to. + # @param [Google::Apis::ServicedirectoryV1::Service] service_object + # @param [String] service_id + # Required. The Resource ID must be 1-63 characters long, and comply with + # RFC1035. Specifically, the name must be 1-63 characters long and match the + # regular expression `[a-z](?:[-a-z0-9]`0,61`[a-z0-9])?` which means the first + # character must be a lowercase letter, and all following characters must be a + # dash, lowercase letter, or digit, except the last character, which cannot be a + # dash. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Service] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Service] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_location_namespace_service(parent, service_object = nil, service_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+parent}/services', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Service::Representation + command.request_object = service_object + command.response_representation = Google::Apis::ServicedirectoryV1::Service::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Service + command.params['parent'] = parent unless parent.nil? + command.query['serviceId'] = service_id unless service_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes a service. This also deletes all endpoints associated with the service. + # @param [String] name + # Required. The name of the service to delete. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_location_namespace_service(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Empty::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a service. + # @param [String] name + # Required. The name of the service to get. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Service] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Service] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_location_namespace_service(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Service::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Service + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets the IAM Policy for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy is being requested. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::GetIamPolicyRequest] get_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_service_iam_policy(resource, get_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:getIamPolicy', options) + command.request_representation = Google::Apis::ServicedirectoryV1::GetIamPolicyRequest::Representation + command.request_object = get_iam_policy_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::Policy::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists all services belonging to a namespace. + # @param [String] parent + # Required. The resource name of the namespace whose services we'd like to list. + # @param [String] filter + # Optional. The filter to list result by. General filter string syntax: () can + # be "name", or "metadata." for map field. can be "<, >, <=, >=, !=, =, :". Of + # which ":" means HAS, and is roughly the same as "=". must be the same data + # type as field. can be "AND, OR, NOT". Examples of valid filters: * "metadata. + # owner" returns Services that have a label with the key "owner" this is the + # same as "metadata:owner". * "metadata.protocol=gRPC" returns Services that + # have key/value "protocol=gRPC". * "name>projects/my-project/locations/us-east/ + # namespaces/my-namespace/services/service-c" returns Services that have name + # that is alphabetically later than the string, so "service-e" will be returned + # but "service-a" will not be. * "metadata.owner!=sd AND metadata.foo=bar" + # returns Services that have "owner" in label key but value is not "sd" AND have + # key/value foo=bar. * "doesnotexist.foo=bar" returns an empty list. Note that + # Service doesn't have a field called "doesnotexist". Since the filter does not + # match any Services, it returns no results. + # @param [String] order_by + # Optional. The order to list result by. + # @param [Fixnum] page_size + # Optional. The maximum number of items to return. + # @param [String] page_token + # Optional. The next_page_token value returned from a previous List request, if + # any. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::ListServicesResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::ListServicesResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_location_namespace_services(parent, filter: nil, order_by: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+parent}/services', options) + command.response_representation = Google::Apis::ServicedirectoryV1::ListServicesResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::ListServicesResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['orderBy'] = order_by unless order_by.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates a service. + # @param [String] name + # Immutable. The resource name for the service in the format 'projects/*/ + # locations/*/namespaces/*/services/*'. + # @param [Google::Apis::ServicedirectoryV1::Service] service_object + # @param [String] update_mask + # Required. List of fields to be updated in this request. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Service] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Service] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_location_namespace_service(name, service_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1/{+name}', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Service::Representation + command.request_object = service_object + command.response_representation = Google::Apis::ServicedirectoryV1::Service::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Service + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Returns a service and its associated endpoints. Resolving a service is not + # considered an active developer method. + # @param [String] name + # Required. The name of the service to resolve. + # @param [Google::Apis::ServicedirectoryV1::ResolveServiceRequest] resolve_service_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::ResolveServiceResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::ResolveServiceResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def resolve_service(name, resolve_service_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+name}:resolve', options) + command.request_representation = Google::Apis::ServicedirectoryV1::ResolveServiceRequest::Representation + command.request_object = resolve_service_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::ResolveServiceResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::ResolveServiceResponse + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Sets the IAM Policy for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy is being specified. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::SetIamPolicyRequest] set_iam_policy_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Policy] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Policy] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def set_service_iam_policy(resource, set_iam_policy_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:setIamPolicy', options) + command.request_representation = Google::Apis::ServicedirectoryV1::SetIamPolicyRequest::Representation + command.request_object = set_iam_policy_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::Policy::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Policy + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Tests IAM permissions for a resource (namespace or service only). + # @param [String] resource + # REQUIRED: The resource for which the policy detail is being requested. See the + # operation documentation for the appropriate value for this field. + # @param [Google::Apis::ServicedirectoryV1::TestIamPermissionsRequest] test_iam_permissions_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def test_service_iam_permissions(resource, test_iam_permissions_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+resource}:testIamPermissions', options) + command.request_representation = Google::Apis::ServicedirectoryV1::TestIamPermissionsRequest::Representation + command.request_object = test_iam_permissions_request_object + command.response_representation = Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::TestIamPermissionsResponse + command.params['resource'] = resource unless resource.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Creates a endpoint, and returns the new Endpoint. + # @param [String] parent + # Required. The resource name of the service that this endpoint provides. + # @param [Google::Apis::ServicedirectoryV1::Endpoint] endpoint_object + # @param [String] endpoint_id + # Required. The Resource ID must be 1-63 characters long, and comply with + # RFC1035. Specifically, the name must be 1-63 characters long and match the + # regular expression `[a-z](?:[-a-z0-9]`0,61`[a-z0-9])?` which means the first + # character must be a lowercase letter, and all following characters must be a + # dash, lowercase letter, or digit, except the last character, which cannot be a + # dash. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Endpoint] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Endpoint] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def create_project_location_namespace_service_endpoint(parent, endpoint_object = nil, endpoint_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v1/{+parent}/endpoints', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Endpoint::Representation + command.request_object = endpoint_object + command.response_representation = Google::Apis::ServicedirectoryV1::Endpoint::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Endpoint + command.params['parent'] = parent unless parent.nil? + command.query['endpointId'] = endpoint_id unless endpoint_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Deletes a endpoint. + # @param [String] name + # Required. The name of the endpoint to delete. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Empty] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Empty] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def delete_project_location_namespace_service_endpoint(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:delete, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Empty::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Empty + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Gets a endpoint. + # @param [String] name + # Required. The name of the endpoint to get. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Endpoint] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Endpoint] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def get_project_location_namespace_service_endpoint(name, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+name}', options) + command.response_representation = Google::Apis::ServicedirectoryV1::Endpoint::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Endpoint + command.params['name'] = name unless name.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Lists all endpoints. + # @param [String] parent + # Required. The resource name of the service whose endpoints we'd like to list. + # @param [String] filter + # Optional. The filter to list result by. General filter string syntax: () can + # be "name", "address", "port" or "metadata." for map field. can be "<, >, <=, >= + # , !=, =, :". Of which ":" means HAS, and is roughly the same as "=". must be + # the same data type as field. can be "AND, OR, NOT". Examples of valid filters: + # * "metadata.owner" returns Endpoints that have a label with the key "owner" + # this is the same as "metadata:owner". * "metadata.protocol=gRPC" returns + # Endpoints that have key/value "protocol=gRPC". * "address=192.108.1.105" + # returns Endpoints that have this address. * "port>8080" returns Endpoints that + # have port number larger than 8080. * "name>projects/my-project/locations/us- + # east/namespaces/my-namespace/services/my-service/endpoints/endpoint-c" returns + # Endpoints that have name that is alphabetically later than the string, so " + # endpoint-e" will be returned but "endpoint-a" will not be. * "metadata.owner!= + # sd AND metadata.foo=bar" returns Endpoints that have "owner" in label key but + # value is not "sd" AND have key/value foo=bar. * "doesnotexist.foo=bar" returns + # an empty list. Note that Endpoint doesn't have a field called "doesnotexist". + # Since the filter does not match any Endpoints, it returns no results. + # @param [String] order_by + # Optional. The order to list result by. + # @param [Fixnum] page_size + # Optional. The maximum number of items to return. + # @param [String] page_token + # Optional. The next_page_token value returned from a previous List request, if + # any. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::ListEndpointsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::ListEndpointsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def list_project_location_namespace_service_endpoints(parent, filter: nil, order_by: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v1/{+parent}/endpoints', options) + command.response_representation = Google::Apis::ServicedirectoryV1::ListEndpointsResponse::Representation + command.response_class = Google::Apis::ServicedirectoryV1::ListEndpointsResponse + command.params['parent'] = parent unless parent.nil? + command.query['filter'] = filter unless filter.nil? + command.query['orderBy'] = order_by unless order_by.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Updates a endpoint. + # @param [String] name + # Immutable. The resource name for the endpoint in the format 'projects/*/ + # locations/*/namespaces/*/services/*/endpoints/*'. + # @param [Google::Apis::ServicedirectoryV1::Endpoint] endpoint_object + # @param [String] update_mask + # Required. List of fields to be updated in this request. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::ServicedirectoryV1::Endpoint] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::ServicedirectoryV1::Endpoint] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def patch_project_location_namespace_service_endpoint(name, endpoint_object = nil, update_mask: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:patch, 'v1/{+name}', options) + command.request_representation = Google::Apis::ServicedirectoryV1::Endpoint::Representation + command.request_object = endpoint_object + command.response_representation = Google::Apis::ServicedirectoryV1::Endpoint::Representation + command.response_class = Google::Apis::ServicedirectoryV1::Endpoint + command.params['name'] = name unless name.nil? + command.query['updateMask'] = update_mask unless update_mask.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + protected + + def apply_command_defaults(command) + command.query['key'] = key unless key.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + end + end + end + end +end diff --git a/generated/google/apis/servicedirectory_v1/synth.metadata b/generated/google/apis/servicedirectory_v1/synth.metadata new file mode 100644 index 000000000..89351340e --- /dev/null +++ b/generated/google/apis/servicedirectory_v1/synth.metadata @@ -0,0 +1,11 @@ +{ + "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/google-api-ruby-client.git", + "sha": "a57471d9781cb640dfa4262a1f8fc34aac285cf7" + } + } + ] +} \ No newline at end of file