# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/channel/v1/service.proto for package 'google.cloud.channel.v1'
# Original file comments:
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     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 'grpc'
require 'google/cloud/channel/v1/service_pb'

module Google
  module Cloud
    module Channel
      module V1
        module CloudChannelService
          # CloudChannelService enables Google cloud resellers and distributors to manage
          # their customers, channel partners, entitlements and reports.
          #
          # Using this service:
          # 1. Resellers or distributors can manage a customer entity.
          # 2. Distributors can register an authorized reseller in their channel and then
          #    enable delegated admin access for the reseller.
          # 3. Resellers or distributors can manage entitlements for their customers.
          #
          # The service primarily exposes the following resources:
          # - [Customer][google.cloud.channel.v1.Customer]s: A Customer represents an entity managed by a reseller or
          # distributor. A customer typically represents an enterprise. In an n-tier
          # resale channel hierarchy, customers are generally represented as leaf nodes.
          # Customers primarily have an Entitlement sub-resource discussed below.
          #
          # - [Entitlement][google.cloud.channel.v1.Entitlement]s: An Entitlement represents an entity which provides a
          # customer means to start using a service. Entitlements are created or updated
          # as a result of a successful fulfillment.
          #
          # - [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s: A ChannelPartnerLink is an entity that identifies
          # links between distributors and their indirect resellers in a channel.
          class Service

            include GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.channel.v1.CloudChannelService'

            # List downstream [Customer][google.cloud.channel.v1.Customer]s.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            #
            # Return Value:
            # List of [Customer][google.cloud.channel.v1.Customer]s pertaining to the reseller or empty list if
            # there are none.
            rpc :ListCustomers, ::Google::Cloud::Channel::V1::ListCustomersRequest, ::Google::Cloud::Channel::V1::ListCustomersResponse
            # Returns a requested [Customer][google.cloud.channel.v1.Customer] resource.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: If the customer resource doesn't exist. Usually
            # the result of an invalid name parameter.
            #
            # Return Value:
            # [Customer][google.cloud.channel.v1.Customer] resource if found, error otherwise.
            rpc :GetCustomer, ::Google::Cloud::Channel::V1::GetCustomerRequest, ::Google::Cloud::Channel::V1::Customer
            # Confirms the existence of Cloud Identity accounts, based on the domain and
            # whether the Cloud Identity accounts are owned by the reseller.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * INVALID_VALUE: Invalid domain value in the request.
            #
            # Return Value:
            # List of [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources for the domain.
            # List may be empty.
            #
            # Note: in the v1alpha1 version of the API, a NOT_FOUND error is returned if
            # no [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources match the domain.
            rpc :CheckCloudIdentityAccountsExist, ::Google::Cloud::Channel::V1::CheckCloudIdentityAccountsExistRequest, ::Google::Cloud::Channel::V1::CheckCloudIdentityAccountsExistResponse
            # Creates a new [Customer][google.cloud.channel.v1.Customer] resource under the reseller or distributor
            # account.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: It can happen in following scenarios -
            #     * Missing or invalid required parameters in the request.
            #     * Domain field value doesn't match the domain specified in primary
            #     email.
            #
            # Return Value:
            # If successful, the newly created [Customer][google.cloud.channel.v1.Customer] resource, otherwise
            # returns an error.
            rpc :CreateCustomer, ::Google::Cloud::Channel::V1::CreateCustomerRequest, ::Google::Cloud::Channel::V1::Customer
            # Updates an existing [Customer][google.cloud.channel.v1.Customer] resource belonging to the reseller or
            # distributor.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name
            # specified in the request.
            #
            # Return Value:
            # If successful, the updated [Customer][google.cloud.channel.v1.Customer] resource, otherwise returns
            # an error.
            rpc :UpdateCustomer, ::Google::Cloud::Channel::V1::UpdateCustomerRequest, ::Google::Cloud::Channel::V1::Customer
            # Deletes the given [Customer][google.cloud.channel.v1.Customer] permanently and irreversibly.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the account making the request does not own
            # this customer.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * FAILED_PRECONDITION: If the customer has existing entitlements.
            # * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name
            # specified in the request.
            rpc :DeleteCustomer, ::Google::Cloud::Channel::V1::DeleteCustomerRequest, ::Google::Protobuf::Empty
            # Creates a Cloud Identity for the given customer using the customer's
            # information or the information provided here, if present.
            #
            # Possible Error Codes:
            #
            # *  PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # *  INVALID_ARGUMENT: Missing or invalid required parameters in the request.
            # *  NOT_FOUND: If the customer is not found for the reseller.
            # *  ALREADY_EXISTS: If the customer's primary email already exists. In this
            #    case, retry after changing the customer's primary contact email.
            # *  INTERNAL: Any non-user error related to a technical issue in the
            #    backend. Contact Cloud Channel support in this case.
            # *  UNKNOWN: Any non-user error related to a technical issue in the backend.
            #    Contact Cloud Channel support in this case.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :ProvisionCloudIdentity, ::Google::Cloud::Channel::V1::ProvisionCloudIdentityRequest, ::Google::Longrunning::Operation
            # List [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a customer.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the request.
            #
            # Return Value:
            # List of [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to the customer, or empty list if
            # there are none.
            rpc :ListEntitlements, ::Google::Cloud::Channel::V1::ListEntitlementsRequest, ::Google::Cloud::Channel::V1::ListEntitlementsResponse
            # List [TransferableSku][google.cloud.channel.v1.TransferableSku]s of a customer based on Cloud Identity ID or
            # Customer Name in the request.
            #
            # This method is used when a reseller lists the entitlements
            # information of a customer that is not owned. The reseller should provide
            # the customer's Cloud Identity ID or Customer Name.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: Appears because of one of the following -
            #     * The customer doesn't belong to the reseller and no auth token.
            #     * The supplied auth token is invalid.
            #     * The reseller account making the request and the queries reseller
            #     account are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the request.
            #
            # Return Value:
            # List of [TransferableSku][google.cloud.channel.v1.TransferableSku] for the given customer.
            rpc :ListTransferableSkus, ::Google::Cloud::Channel::V1::ListTransferableSkusRequest, ::Google::Cloud::Channel::V1::ListTransferableSkusResponse
            # List [TransferableOffer][google.cloud.channel.v1.TransferableOffer]s of a customer based on Cloud Identity ID or
            # Customer Name in the request.
            #
            # This method is used when a reseller gets the entitlement
            # information of a customer that is not owned. The reseller should provide
            # the customer's Cloud Identity ID or Customer Name.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: Appears because of one of the following:
            #     * If the customer doesn't belong to the reseller and no auth token or
            #     invalid auth token is supplied.
            #     * If the reseller account making the request and the reseller account
            #     being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            #
            # Return Value:
            # List of [TransferableOffer][google.cloud.channel.v1.TransferableOffer] for the given customer and SKU.
            rpc :ListTransferableOffers, ::Google::Cloud::Channel::V1::ListTransferableOffersRequest, ::Google::Cloud::Channel::V1::ListTransferableOffersResponse
            # Returns a requested [Entitlement][google.cloud.channel.v1.Entitlement] resource.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: If the entitlement is not found for the customer.
            #
            # Return Value:
            # If found, the requested [Entitlement][google.cloud.channel.v1.Entitlement] resource, otherwise returns
            # an error.
            rpc :GetEntitlement, ::Google::Cloud::Channel::V1::GetEntitlementRequest, ::Google::Cloud::Channel::V1::Entitlement
            # Creates an entitlement for a customer.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: It can happen in below scenarios -
            #     * Missing or invalid required parameters in the request.
            #     * Cannot purchase an entitlement if there is already an entitlement for
            #     customer, for a SKU from the same product family.
            #     * INVALID_VALUE: Offer passed in isn't valid. Make sure OfferId is
            #     valid. If it is valid, then contact Google Channel support for further
            #     troubleshooting.
            # * NOT_FOUND: If the customer or offer resource is not found for the
            # reseller.
            # * ALREADY_EXISTS: This failure can happen in the following cases:
            #     * If the SKU has been already purchased for the customer.
            #     * If the customer's primary email already exists. In this case retry
            #     after changing the customer's primary contact email.
            # * CONDITION_NOT_MET or FAILED_PRECONDITION: This failure can happen in the
            # following cases:
            #     * Purchasing a SKU that requires domain verification and the domain has
            #     not been verified.
            #     * Purchasing an Add-On SKU like Vault or Drive without purchasing the
            #     pre-requisite SKU, such as Google Workspace Business Starter.
            #     * Applicable only for developer accounts: reseller and resold domain.
            #     Must meet the following domain naming requirements:
            #         * Domain names must start with goog-test.
            #         * Resold domain names must include the reseller domain.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. Contact Cloud Channel Support in this case.
            # * UNKNOWN: Any non-user error related to a technical issue in the
            # backend. Contact Cloud Channel Support in this case.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :CreateEntitlement, ::Google::Cloud::Channel::V1::CreateEntitlementRequest, ::Google::Longrunning::Operation
            # Change parameters of the entitlement
            #
            # An entitlement parameters update is a long-running operation and results in
            # updates to the entitlement as a result of fulfillment.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request. For example, if the number of seats being changed to is greater
            # than the allowed number of max seats for the resource. Or decreasing seats
            # for a commitment based plan.
            # * NOT_FOUND: Entitlement resource not found.
            # * INTERNAL: Any non-user error related to a technical issue
            # in the backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :ChangeParameters, ::Google::Cloud::Channel::V1::ChangeParametersRequest, ::Google::Longrunning::Operation
            # Updates the renewal settings for an existing customer entitlement.
            #
            # An entitlement update is a long-running operation and results in updates to
            # the entitlement as a result of fulfillment.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Entitlement resource not found.
            # * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a
            # commitment plan. Can't enable or disable renewal for non-commitment plans.
            # * INTERNAL: Any non user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :ChangeRenewalSettings, ::Google::Cloud::Channel::V1::ChangeRenewalSettingsRequest, ::Google::Longrunning::Operation
            # Updates the Offer for an existing customer entitlement.
            #
            # An entitlement update is a long-running operation and results in updates to
            # the entitlement as a result of fulfillment.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Offer or Entitlement resource not found.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :ChangeOffer, ::Google::Cloud::Channel::V1::ChangeOfferRequest, ::Google::Longrunning::Operation
            # Starts paid service for a trial entitlement.
            #
            # Starts paid service for a trial entitlement immediately. This method is
            # only applicable if a plan has already been set up for a trial entitlement
            # but has some trial days remaining.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Entitlement resource not found.
            # * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for
            # entitlement on trial plans.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue
            # in the backend. In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :StartPaidService, ::Google::Cloud::Channel::V1::StartPaidServiceRequest, ::Google::Longrunning::Operation
            # Suspends a previously fulfilled entitlement.
            # An entitlement suspension is a long-running operation.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Entitlement resource not found.
            # * NOT_ACTIVE: Entitlement is not active.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :SuspendEntitlement, ::Google::Cloud::Channel::V1::SuspendEntitlementRequest, ::Google::Longrunning::Operation
            # Cancels a previously fulfilled entitlement.
            # An entitlement cancellation is a long-running operation.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller or
            # if the reseller account making the request and reseller account being
            # queried for are different.
            # * FAILED_PRECONDITION: If there are any Google Cloud projects linked to the
            # Google Cloud entitlement's Cloud Billing subaccount.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Entitlement resource not found.
            # * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace
            # add-ons or entitlements for Google Cloud's development platform.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The response will contain
            # google.protobuf.Empty on success. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :CancelEntitlement, ::Google::Cloud::Channel::V1::CancelEntitlementRequest, ::Google::Longrunning::Operation
            # Activates a previously suspended entitlement. The entitlement must be in a
            # suspended state for it to be activated. Entitlements suspended for pending
            # ToS acceptance can't be activated using this method. An entitlement
            # activation is a long-running operation and can result in updates to
            # the state of the customer entitlement.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller or
            # if the reseller account making the request and reseller account being
            # queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: Entitlement resource not found.
            # * SUSPENSION_NOT_RESELLER_INITIATED: Can't activate an
            # entitlement that is pending TOS acceptance. Only reseller initiated
            # suspensions can be activated.
            # * NOT_SUSPENDED: Can't activate entitlements that are already in ACTIVE
            # state. Can only activate suspended entitlements.
            # * INTERNAL: Any non-user error related to a technical issue
            # in the backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :ActivateEntitlement, ::Google::Cloud::Channel::V1::ActivateEntitlementRequest, ::Google::Longrunning::Operation
            # Transfers customer entitlements to new reseller.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the request.
            # * NOT_FOUND: If the customer or offer resource is not found for the
            # reseller.
            # * ALREADY_EXISTS: If the SKU has been already transferred for the customer.
            # * CONDITION_NOT_MET or FAILED_PRECONDITION: This failure can happen in the
            # following cases:
            #     * Transferring a SKU that requires domain verification and the domain
            #     has not been verified.
            #     * Transferring an Add-On SKU like Vault or Drive without transferring
            #     the pre-requisite SKU, such as G Suite Basic.
            #     * Applicable only for developer accounts: reseller and resold domain
            #     must follow the domain naming convention as follows:
            #         * Domain names must start with goog-test.
            #         * Resold domain names must include the reseller domain.
            #     * All transferring entitlements must be specified.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # Please contact Cloud Channel Support in this case.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # Please contact Cloud Channel Support in this case.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :TransferEntitlements, ::Google::Cloud::Channel::V1::TransferEntitlementsRequest, ::Google::Longrunning::Operation
            # Transfers customer entitlements from current reseller to Google.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the request.
            # * NOT_FOUND: If the customer or offer resource is not found for the
            # reseller.
            # * ALREADY_EXISTS: If the SKU has been already transferred for the customer.
            # * CONDITION_NOT_MET or FAILED_PRECONDITION: This failure can happen in
            # the following cases:
            #     * Transferring a SKU that requires domain verification and the domain
            #     has not been verified.
            #     * Transferring an Add-On SKU like Vault or Drive without purchasing the
            #     pre-requisite SKU, such as G Suite Basic.
            #     * Applicable only for developer accounts: reseller and resold domain
            #     must follow the domain naming convention as follows:
            #         * Domain names must start with goog-test.
            #         * Resold domain names must include the reseller domain.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # Please contact Cloud Channel Support in this case.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # Please contact Cloud Channel Support in this case.
            #
            # Return Value:
            # Long Running Operation ID.
            #
            # To get the results of the operation, call the GetOperation method of
            # CloudChannelOperationsService. The response will contain
            # google.protobuf.Empty on success. The Operation metadata will contain an
            # instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
            rpc :TransferEntitlementsToGoogle, ::Google::Cloud::Channel::V1::TransferEntitlementsToGoogleRequest, ::Google::Longrunning::Operation
            # List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s belonging to a distributor.
            # To call this method, you must be a distributor.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            #
            # Return Value:
            # If successful, returns the list of [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resources
            # for the distributor account, otherwise returns an error.
            rpc :ListChannelPartnerLinks, ::Google::Cloud::Channel::V1::ListChannelPartnerLinksRequest, ::Google::Cloud::Channel::V1::ListChannelPartnerLinksResponse
            # Returns a requested [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
            # To call this method, you must be a distributor.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: ChannelPartnerLink resource not found. Results
            # due invalid channel partner link name.
            #
            # Return Value:
            # [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource if found, otherwise returns an error.
            rpc :GetChannelPartnerLink, ::Google::Cloud::Channel::V1::GetChannelPartnerLinkRequest, ::Google::Cloud::Channel::V1::ChannelPartnerLink
            # Initiates a channel partner link between a distributor and a reseller or
            # between resellers in an n-tier reseller channel.
            # To accept the invite, the invited partner should follow the invite_link_uri
            # provided in the response. If the link creation is accepted, a valid link is
            # set up between the two involved parties.
            # To call this method, you must be a distributor.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * ALREADY_EXISTS: If the ChannelPartnerLink sent in the request already
            # exists.
            # * NOT_FOUND: If no Cloud Identity customer exists for domain provided.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in
            # the backend. In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Newly created [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource if successful,
            # otherwise error is returned.
            rpc :CreateChannelPartnerLink, ::Google::Cloud::Channel::V1::CreateChannelPartnerLinkRequest, ::Google::Cloud::Channel::V1::ChannelPartnerLink
            # Updates a channel partner link. A distributor calls this method to change a
            # link's status. For example, suspend a partner link.
            # To call this method, you must be a distributor.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being queried for are different.
            # * INVALID_ARGUMENT: It can happen in following scenarios -
            #     * Missing or invalid required parameters in the request.
            #     * Updating link state from invited to active or suspended.
            #     * Sending reseller_cloud_identity_id, invite_url or name in update
            #     mask.
            # * NOT_FOUND: ChannelPartnerLink resource not found.
            # * INTERNAL: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in the backend.
            # In this case, contact Cloud Channel support.
            #
            # Return Value:
            # If successful, the updated [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource, otherwise
            # returns an error.
            rpc :UpdateChannelPartnerLink, ::Google::Cloud::Channel::V1::UpdateChannelPartnerLinkRequest, ::Google::Cloud::Channel::V1::ChannelPartnerLink
            # Lists the Products the reseller is authorized to sell.
            #
            # Possible Error Codes:
            #
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            rpc :ListProducts, ::Google::Cloud::Channel::V1::ListProductsRequest, ::Google::Cloud::Channel::V1::ListProductsResponse
            # Lists the SKUs for a product the reseller is authorized to sell.
            #
            # Possible Error Codes:
            #
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            rpc :ListSkus, ::Google::Cloud::Channel::V1::ListSkusRequest, ::Google::Cloud::Channel::V1::ListSkusResponse
            # Lists the Offers the reseller can sell.
            #
            # Possible Error Codes:
            #
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            rpc :ListOffers, ::Google::Cloud::Channel::V1::ListOffersRequest, ::Google::Cloud::Channel::V1::ListOffersResponse
            # Lists the Purchasable SKUs for following cases:
            #
            # * SKUs that can be newly purchased for a customer
            # * SKUs that can be upgraded/downgraded to, for an entitlement.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            rpc :ListPurchasableSkus, ::Google::Cloud::Channel::V1::ListPurchasableSkusRequest, ::Google::Cloud::Channel::V1::ListPurchasableSkusResponse
            # Lists the Purchasable Offers for the following cases:
            #
            # * Offers that can be newly purchased for a customer
            # * Offers that can be changed to, for an entitlement.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the customer doesn't belong to the reseller
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            rpc :ListPurchasableOffers, ::Google::Cloud::Channel::V1::ListPurchasableOffersRequest, ::Google::Cloud::Channel::V1::ListPurchasableOffersResponse
            # Registers a service account with subscriber privileges on the Cloud Pub/Sub
            # topic created for this Channel Services account. Once you create a
            # subscriber, you will get the events as per [SubscriberEvent][google.cloud.channel.v1.SubscriberEvent]
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being provided are different, or if the impersonated user
            # is not a super admin.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in
            # the backend. In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Topic name with service email address registered if successful,
            # otherwise error is returned.
            rpc :RegisterSubscriber, ::Google::Cloud::Channel::V1::RegisterSubscriberRequest, ::Google::Cloud::Channel::V1::RegisterSubscriberResponse
            # Unregisters a service account with subscriber privileges on the Cloud
            # Pub/Sub topic created for this Channel Services account. If there are no
            # more service account left with sunbscriber privileges, the topic will be
            # deleted. You can check this by calling ListSubscribers api.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being provided are different, or if the impersonated user
            # is not a super admin.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: If the topic resource doesn't exist.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in
            # the backend. In this case, contact Cloud Channel support.
            #
            # Return Value:
            # Topic name from which service email address has been unregistered if
            # successful, otherwise error is returned. If the service email was already
            # not associated with the topic, the success response will be returned.
            rpc :UnregisterSubscriber, ::Google::Cloud::Channel::V1::UnregisterSubscriberRequest, ::Google::Cloud::Channel::V1::UnregisterSubscriberResponse
            # Lists service accounts with subscriber privileges on the Cloud Pub/Sub
            # topic created for this Channel Services account.
            #
            # Possible Error Codes:
            #
            # * PERMISSION_DENIED: If the reseller account making the request and the
            # reseller account being provided are different, or if the account is not
            # a super admin.
            # * INVALID_ARGUMENT: Missing or invalid required parameters in the
            # request.
            # * NOT_FOUND: If the topic resource doesn't exist.
            # * INTERNAL: Any non-user error related to a technical issue in the
            # backend. In this case, contact Cloud Channel support.
            # * UNKNOWN: Any non-user error related to a technical issue in
            # the backend. In this case, contact Cloud Channel support.
            #
            # Return Value:
            # List of service email addresses if successful, otherwise error is
            # returned.
            rpc :ListSubscribers, ::Google::Cloud::Channel::V1::ListSubscribersRequest, ::Google::Cloud::Channel::V1::ListSubscribersResponse
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end