Class CloudChannelServiceGrpc.CloudChannelServiceFutureStub

java.lang.Object
io.grpc.stub.AbstractStub<S>
io.grpc.stub.AbstractFutureStub<CloudChannelServiceGrpc.CloudChannelServiceFutureStub>
com.google.cloud.channel.v1.CloudChannelServiceGrpc.CloudChannelServiceFutureStub
Enclosing class:
CloudChannelServiceGrpc

public static final class CloudChannelServiceGrpc.CloudChannelServiceFutureStub extends io.grpc.stub.AbstractFutureStub<CloudChannelServiceGrpc.CloudChannelServiceFutureStub>
A stub to allow clients to do ListenableFuture-style rpc calls to service CloudChannelService.
 CloudChannelService lets Google cloud resellers and distributors manage
 their customers, channel partners, entitlements, and reports.
 Using this service:
 1. Resellers and distributors can manage a customer entity.
 2. Distributors can register an authorized reseller in their channel and
    provide them with delegated admin access.
 3. Resellers and distributors can manage customer entitlements.
 CloudChannelService exposes the following resources:
 - [Customer][google.cloud.channel.v1.Customer]s: An entity-usually an
 enterprise-managed by a reseller or distributor.
 - [Entitlement][google.cloud.channel.v1.Entitlement]s: An entity that
 provides a customer with the means to use a service. Entitlements are created
 or updated as a result of a successful fulfillment.
 - [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s: An
 entity that identifies links between distributors and their indirect
 resellers in a channel.
 
  • Method Details

    • build

      protected CloudChannelServiceGrpc.CloudChannelServiceFutureStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<CloudChannelServiceGrpc.CloudChannelServiceFutureStub>
    • listCustomers

      public com.google.common.util.concurrent.ListenableFuture<ListCustomersResponse> listCustomers(ListCustomersRequest request)
       List [Customer][google.cloud.channel.v1.Customer]s.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       List of [Customer][google.cloud.channel.v1.Customer]s, or an empty list if
       there are no customers.
       
    • getCustomer

      public com.google.common.util.concurrent.ListenableFuture<Customer> getCustomer(GetCustomerRequest request)
       Returns the requested [Customer][google.cloud.channel.v1.Customer]
       resource.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The customer resource doesn't exist. Usually the result of an
       invalid name parameter.
       Return value:
       The [Customer][google.cloud.channel.v1.Customer] resource.
       
    • checkCloudIdentityAccountsExist

      public com.google.common.util.concurrent.ListenableFuture<CheckCloudIdentityAccountsExistResponse> checkCloudIdentityAccountsExist(CheckCloudIdentityAccountsExistRequest request)
       Confirms the existence of Cloud Identity accounts based on the domain and
       if the Cloud Identity accounts are owned by the reseller.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * INVALID_VALUE: Invalid domain value in the request.
       Return value:
       A list of
       [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount]
       resources for the domain (may be empty)
       Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if
       no
       [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount]
       resources match the domain.
       
    • createCustomer

      public com.google.common.util.concurrent.ListenableFuture<Customer> createCustomer(CreateCustomerRequest request)
       Creates a new [Customer][google.cloud.channel.v1.Customer] resource under
       the reseller or distributor account.
       Possible error codes:
       * PERMISSION_DENIED:
           * The reseller account making the request is different from the
           reseller account in the API request.
           * You are not authorized to create a customer. See
           https://support.google.com/channelservices/answer/9759265
       * INVALID_ARGUMENT:
           * Required request parameters are missing or invalid.
           * Domain field value doesn't match the primary email domain.
       Return value:
       The newly created [Customer][google.cloud.channel.v1.Customer] resource.
       
    • updateCustomer

      public com.google.common.util.concurrent.ListenableFuture<Customer> updateCustomer(UpdateCustomerRequest request)
       Updates an existing [Customer][google.cloud.channel.v1.Customer] resource
       for the reseller or distributor.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found
       for the name in the request.
       Return value:
       The updated [Customer][google.cloud.channel.v1.Customer] resource.
       
    • deleteCustomer

      public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty> deleteCustomer(DeleteCustomerRequest request)
       Deletes the given [Customer][google.cloud.channel.v1.Customer] permanently.
       Possible error codes:
       * PERMISSION_DENIED: The account making the request does not own
       this customer.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * FAILED_PRECONDITION: The customer has existing entitlements.
       * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found
       for the name in the request.
       
    • importCustomer

      public com.google.common.util.concurrent.ListenableFuture<Customer> importCustomer(ImportCustomerRequest request)
       Imports a [Customer][google.cloud.channel.v1.Customer] from the Cloud
       Identity associated with the provided Cloud Identity ID or domain before a
       TransferEntitlements call. If a linked Customer already exists and
       overwrite_if_exists is true, it will update that Customer's data.
       Possible error codes:
       * PERMISSION_DENIED:
           * The reseller account making the request is different from the
           reseller account in the API request.
           * You are not authorized to import the customer. See
           https://support.google.com/channelservices/answer/9759265
       * NOT_FOUND: Cloud Identity doesn't exist or was deleted.
       * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is
       expired or invalid.
       * ALREADY_EXISTS: A customer already exists and has conflicting critical
       fields. Requires an overwrite.
       Return value:
       The [Customer][google.cloud.channel.v1.Customer].
       
    • provisionCloudIdentity

      public com.google.common.util.concurrent.ListenableFuture<Operation> provisionCloudIdentity(ProvisionCloudIdentityRequest request)
       Creates a Cloud Identity for the given customer using the customer's
       information, or the information provided here.
       Possible error codes:
       *  PERMISSION_DENIED:
            * The customer doesn't belong to the reseller.
            * You are not authorized to provision cloud identity id. See
            https://support.google.com/channelservices/answer/9759265
       *  INVALID_ARGUMENT: Required request parameters are missing or invalid.
       *  NOT_FOUND: The customer was not found.
       *  ALREADY_EXISTS: The customer's primary email already exists. 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.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       To get the results of the operation, call the GetOperation method of
       CloudChannelOperationsService. The Operation metadata contains an
       instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
       
    • listEntitlements

      public com.google.common.util.concurrent.ListenableFuture<ListEntitlementsResponse> listEntitlements(ListEntitlementsRequest request)
       Lists [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a
       customer.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       A list of the customer's
       [Entitlement][google.cloud.channel.v1.Entitlement]s.
       
    • listTransferableSkus

      public com.google.common.util.concurrent.ListenableFuture<ListTransferableSkusResponse> listTransferableSkus(ListTransferableSkusRequest request)
       List [TransferableSku][google.cloud.channel.v1.TransferableSku]s of a
       customer based on the Cloud Identity ID or Customer Name in the request.
       Use this method to list the entitlements information of an
       unowned customer. You should provide the customer's
       Cloud Identity ID or Customer Name.
       Possible error codes:
       * PERMISSION_DENIED:
           * The customer doesn't belong to the reseller and has no auth token.
           * The supplied auth token is invalid.
           * The reseller account making the request is different
           from the reseller account in the query.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       A list of the customer's
       [TransferableSku][google.cloud.channel.v1.TransferableSku].
       
    • listTransferableOffers

      public com.google.common.util.concurrent.ListenableFuture<ListTransferableOffersResponse> listTransferableOffers(ListTransferableOffersRequest request)
       List [TransferableOffer][google.cloud.channel.v1.TransferableOffer]s of a
       customer based on Cloud Identity ID or Customer Name in the request.
       Use this method when a reseller gets the entitlement information of an
       unowned customer. The reseller should provide the customer's
       Cloud Identity ID or Customer Name.
       Possible error codes:
       * PERMISSION_DENIED:
           * The customer doesn't belong to the reseller and has no auth token.
           * The customer provided incorrect reseller information when generating
           auth token.
           * The reseller account making the request is different
           from the reseller account in the query.
           * The reseller is not authorized to transact on this Product. See
           https://support.google.com/channelservices/answer/9759265
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       List of [TransferableOffer][google.cloud.channel.v1.TransferableOffer] for
       the given customer and SKU.
       
    • getEntitlement

      public com.google.common.util.concurrent.ListenableFuture<Entitlement> getEntitlement(GetEntitlementRequest request)
       Returns the requested [Entitlement][google.cloud.channel.v1.Entitlement]
       resource.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The customer entitlement was not found.
       Return value:
       The requested [Entitlement][google.cloud.channel.v1.Entitlement] resource.
       
    • createEntitlement

      public com.google.common.util.concurrent.ListenableFuture<Operation> createEntitlement(CreateEntitlementRequest request)
       Creates an entitlement for a customer.
       Possible error codes:
       * PERMISSION_DENIED:
           * The customer doesn't belong to the reseller.
           * The reseller is not authorized to transact on this Product. See
           https://support.google.com/channelservices/answer/9759265
       * INVALID_ARGUMENT:
           * Required request parameters are missing or invalid.
           * There is already a customer entitlement for a SKU from the same
           product family.
       * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact
       Google Channel support for further troubleshooting.
       * NOT_FOUND: The customer or offer resource was not found.
       * ALREADY_EXISTS:
           * The SKU was already purchased for the customer.
           * The customer's primary email already exists. Retry
           after changing the customer's primary contact email.
       * CONDITION_NOT_MET or FAILED_PRECONDITION:
           * The domain required for purchasing a SKU has not been verified.
           * A pre-requisite SKU required to purchase an Add-On SKU is missing.
           For example, Google Workspace Business Starter is required to purchase
           Vault or Drive.
           * (Developer accounts only) Reseller and resold domain must meet the
           following naming requirements:
               * Domain names must start with goog-test.
               * Domain names must include the reseller domain.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • changeParameters

      public com.google.common.util.concurrent.ListenableFuture<Operation> changeParameters(ChangeParametersRequest request)
       Change parameters of the entitlement.
       An entitlement update is a long-running operation and it updates the
       entitlement as a result of fulfillment.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       For example, the number of seats being changed is greater than the allowed
       number of max seats, 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. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • changeRenewalSettings

      public com.google.common.util.concurrent.ListenableFuture<Operation> changeRenewalSettings(ChangeRenewalSettingsRequest request)
       Updates the renewal settings for an existing customer entitlement.
       An entitlement update is a long-running operation and it updates the
       entitlement as a result of fulfillment.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: Entitlement resource not found.
       * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a
       commitment plan. Can't enable or disable renewals for non-commitment plans.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
         Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • changeOffer

      public com.google.common.util.concurrent.ListenableFuture<Operation> changeOffer(ChangeOfferRequest request)
       Updates the Offer for an existing customer entitlement.
       An entitlement update is a long-running operation and it updates the
       entitlement as a result of fulfillment.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: Offer or Entitlement resource not found.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • startPaidService

      public com.google.common.util.concurrent.ListenableFuture<Operation> startPaidService(StartPaidServiceRequest request)
       Starts paid service for a trial entitlement.
       Starts paid service for a trial entitlement immediately. This method is
       only applicable if a plan is set up for a trial entitlement but has some
       trial days remaining.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * 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. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • suspendEntitlement

      public com.google.common.util.concurrent.ListenableFuture<Operation> suspendEntitlement(SuspendEntitlementRequest request)
       Suspends a previously fulfilled entitlement.
       An entitlement suspension is a long-running operation.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * 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. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • cancelEntitlement

      public com.google.common.util.concurrent.ListenableFuture<Operation> cancelEntitlement(CancelEntitlementRequest request)
       Cancels a previously fulfilled entitlement.
       An entitlement cancellation is a long-running operation.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * FAILED_PRECONDITION: There are Google Cloud projects linked to the
       Google Cloud entitlement's Cloud Billing subaccount.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * 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. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • activateEntitlement

      public com.google.common.util.concurrent.ListenableFuture<Operation> activateEntitlement(ActivateEntitlementRequest request)
       Activates a previously suspended entitlement. Entitlements suspended for
       pending ToS acceptance can't be activated using this method.
       An entitlement activation is a long-running operation and it updates
       the state of the customer entitlement.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: Entitlement resource not found.
       * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated
       suspensions and entitlements that have accepted the TOS.
       * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE
       state.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • transferEntitlements

      public com.google.common.util.concurrent.ListenableFuture<Operation> transferEntitlements(TransferEntitlementsRequest request)
       Transfers customer entitlements to new reseller.
       Possible error codes:
       * PERMISSION_DENIED:
           * The customer doesn't belong to the reseller.
           * The reseller is not authorized to transact on this Product. See
           https://support.google.com/channelservices/answer/9759265
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The customer or offer resource was not found.
       * ALREADY_EXISTS: The SKU was already transferred for the customer.
       * CONDITION_NOT_MET or FAILED_PRECONDITION:
           * The SKU requires domain verification to transfer, but the domain is
           not verified.
           * An Add-On SKU (example, Vault or Drive) is missing the
           pre-requisite SKU (example, G Suite Basic).
           * (Developer accounts only) Reseller and resold domain must meet the
           following naming requirements:
               * Domain names must start with goog-test.
               * Domain names must include the reseller domain.
           * Specify all transferring entitlements.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • transferEntitlementsToGoogle

      public com.google.common.util.concurrent.ListenableFuture<Operation> transferEntitlementsToGoogle(TransferEntitlementsToGoogleRequest request)
       Transfers customer entitlements from their current reseller to Google.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The customer or offer resource was not found.
       * ALREADY_EXISTS: The SKU was already transferred for the customer.
       * CONDITION_NOT_MET or FAILED_PRECONDITION:
           * The SKU requires domain verification to transfer, but the domain is
           not verified.
           * An Add-On SKU (example, Vault or Drive) is missing the
           pre-requisite SKU (example, G Suite Basic).
           * (Developer accounts only) Reseller and resold domain must meet the
           following naming requirements:
               * Domain names must start with goog-test.
               * Domain names must include the reseller domain.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The ID of a long-running operation.
       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].
       
    • listChannelPartnerLinks

      public com.google.common.util.concurrent.ListenableFuture<ListChannelPartnerLinksResponse> listChannelPartnerLinks(ListChannelPartnerLinksRequest request)
       List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s
       belonging to a distributor. You must be a distributor to call this method.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       The list of the distributor account's
       [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resources.
       
    • getChannelPartnerLink

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerLink> getChannelPartnerLink(GetChannelPartnerLinkRequest request)
       Returns the requested
       [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
       You must be a distributor to call this method.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: ChannelPartnerLink resource not found because of an
       invalid channel partner link name.
       Return value:
       The [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]
       resource.
       
    • createChannelPartnerLink

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerLink> createChannelPartnerLink(CreateChannelPartnerLinkRequest request)
       Initiates a channel partner link between a distributor and a reseller, or
       between resellers in an n-tier reseller channel.
       Invited partners need to follow the invite_link_uri provided in the
       response to accept. After accepting the invitation, a link is set up
       between the two parties.
       You must be a distributor to call this method.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already
       exists.
       * NOT_FOUND: No Cloud Identity customer exists for provided domain.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The new [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]
       resource.
       
    • updateChannelPartnerLink

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerLink> updateChannelPartnerLink(UpdateChannelPartnerLinkRequest request)
       Updates a channel partner link. Distributors call this method to change a
       link's status. For example, to suspend a partner link.
       You must be a distributor to call this method.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request is different
       from the reseller account in the API request.
       * INVALID_ARGUMENT:
           * Required request parameters are missing or invalid.
           * Link state cannot change from invited to active or suspended.
           * Cannot send 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. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The updated
       [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
       
    • getCustomerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<CustomerRepricingConfig> getCustomerRepricingConfig(GetCustomerRepricingConfigRequest request)
       Gets information about how a Reseller modifies their bill before sending
       it to a Customer.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * NOT_FOUND: The
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       was not found.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       resource, otherwise returns an error.
       
    • listCustomerRepricingConfigs

      public com.google.common.util.concurrent.ListenableFuture<ListCustomerRepricingConfigsResponse> listCustomerRepricingConfigs(ListCustomerRepricingConfigsRequest request)
       Lists information about how a Reseller modifies their bill before sending
       it to a Customer.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * NOT_FOUND: The
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       resources. The data for each resource is displayed in the ascending order
       of:
       * Customer ID
       * [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]
       * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       * [CustomerRepricingConfig.update_time][google.cloud.channel.v1.CustomerRepricingConfig.update_time]
       If unsuccessful, returns an error.
       
    • createCustomerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<CustomerRepricingConfig> createCustomerRepricingConfig(CreateCustomerRepricingConfigRequest request)
       Creates a CustomerRepricingConfig. Call this method to set modifications
       for a specific customer's bill. You can only create configs if the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is a future month. If needed, you can create a config for the current
       month, with some restrictions.
       When creating a config for a future month, make sure there are no existing
       configs for that
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       The following restrictions are for creating configs in the current month.
       * This functionality is reserved for recovering from an erroneous config,
       and should not be used for regular business cases.
       * The new config will not modify exports used with other configs.
       Changes to the config may be immediate, but may take up to 24 hours.
       * There is a limit of ten configs for any
       [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement],
       for any
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       * The contained
       [CustomerRepricingConfig.repricing_config][google.cloud.channel.v1.CustomerRepricingConfig.repricing_config]
       value must be different from the value used in the current config for a
       [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement].
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * INVALID_ARGUMENT: Missing or invalid required parameters in the
       request. Also displays if the updated config is for the current month or
       past months.
       * NOT_FOUND: The
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the updated
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       resource, otherwise returns an error.
       
    • updateCustomerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<CustomerRepricingConfig> updateCustomerRepricingConfig(UpdateCustomerRepricingConfigRequest request)
       Updates a CustomerRepricingConfig. Call this method to set modifications
       for a specific customer's bill. This method overwrites the existing
       CustomerRepricingConfig.
       You can only update configs if the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is a future month. To make changes to configs for the current month, use
       [CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig],
       taking note of its restrictions. You cannot update the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       When updating a config in the future:
       * This config must already exist.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * INVALID_ARGUMENT: Missing or invalid required parameters in the
       request. Also displays if the updated config is for the current month or
       past months.
       * NOT_FOUND: The
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the updated
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       resource, otherwise returns an error.
       
    • deleteCustomerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty> deleteCustomerRepricingConfig(DeleteCustomerRepricingConfigRequest request)
       Deletes the given
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       permanently. You can only delete configs if their
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is set to a date after the current month.
       Possible error codes:
       * PERMISSION_DENIED: The account making the request does not own
       this customer.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * FAILED_PRECONDITION: The
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       is active or in the past.
       * NOT_FOUND: No
       [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
       found for the name in the request.
       
    • getChannelPartnerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerRepricingConfig> getChannelPartnerRepricingConfig(GetChannelPartnerRepricingConfigRequest request)
       Gets information about how a Distributor modifies their bill before sending
       it to a ChannelPartner.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * NOT_FOUND: The
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       was not found.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       resource, otherwise returns an error.
       
    • listChannelPartnerRepricingConfigs

      public com.google.common.util.concurrent.ListenableFuture<ListChannelPartnerRepricingConfigsResponse> listChannelPartnerRepricingConfigs(ListChannelPartnerRepricingConfigsRequest request)
       Lists information about how a Reseller modifies their bill before sending
       it to a ChannelPartner.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * NOT_FOUND: The
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       resources. The data for each resource is displayed in the ascending order
       of:
       * Channel Partner ID
       * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       * [ChannelPartnerRepricingConfig.update_time][google.cloud.channel.v1.ChannelPartnerRepricingConfig.update_time]
       If unsuccessful, returns an error.
       
    • createChannelPartnerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerRepricingConfig> createChannelPartnerRepricingConfig(CreateChannelPartnerRepricingConfigRequest request)
       Creates a ChannelPartnerRepricingConfig. Call this method to set
       modifications for a specific ChannelPartner's bill. You can only create
       configs if the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is a future month. If needed, you can create a config for the current
       month, with some restrictions.
       When creating a config for a future month, make sure there are no existing
       configs for that
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       The following restrictions are for creating configs in the current month.
       * This functionality is reserved for recovering from an erroneous config,
       and should not be used for regular business cases.
       * The new config will not modify exports used with other configs.
       Changes to the config may be immediate, but may take up to 24 hours.
       * There is a limit of ten configs for any ChannelPartner or
       [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement],
       for any
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       * The contained
       [ChannelPartnerRepricingConfig.repricing_config][google.cloud.channel.v1.ChannelPartnerRepricingConfig.repricing_config]
       value must be different from the value used in the current config for a
       ChannelPartner.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * INVALID_ARGUMENT: Missing or invalid required parameters in the
       request. Also displays if the updated config is for the current month or
       past months.
       * NOT_FOUND: The
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the updated
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       resource, otherwise returns an error.
       
    • updateChannelPartnerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<ChannelPartnerRepricingConfig> updateChannelPartnerRepricingConfig(UpdateChannelPartnerRepricingConfigRequest request)
       Updates a ChannelPartnerRepricingConfig. Call this method to set
       modifications for a specific ChannelPartner's bill. This method overwrites
       the existing CustomerRepricingConfig.
       You can only update configs if the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is a future month. To make changes to configs for the current month, use
       [CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig],
       taking note of its restrictions. You cannot update the
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
       When updating a config in the future:
       * This config must already exist.
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different.
       * INVALID_ARGUMENT: Missing or invalid required parameters in the
       request. Also displays if the updated config is for the current month or
       past months.
       * NOT_FOUND: The
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       specified does not exist or is not associated with the given account.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the updated
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       resource, otherwise returns an error.
       
    • deleteChannelPartnerRepricingConfig

      public com.google.common.util.concurrent.ListenableFuture<com.google.protobuf.Empty> deleteChannelPartnerRepricingConfig(DeleteChannelPartnerRepricingConfigRequest request)
       Deletes the given
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       permanently. You can only delete configs if their
       [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
       is set to a date after the current month.
       Possible error codes:
       * PERMISSION_DENIED: The account making the request does not own
       this customer.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * FAILED_PRECONDITION: The
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       is active or in the past.
       * NOT_FOUND: No
       [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
       found for the name in the request.
       
    • listSkuGroups

      public com.google.common.util.concurrent.ListenableFuture<ListSkuGroupsResponse> listSkuGroups(ListSkuGroupsRequest request)
       Lists the Rebilling supported SKU groups the account is authorized to
       sell.
       Reference: https://cloud.google.com/skus/sku-groups
       Possible Error Codes:
       * PERMISSION_DENIED: If the account making the request and the account
       being queried are different, or the account doesn't exist.
       * INTERNAL: Any non-user error related to technical issues in the
       backend. In this case, contact Cloud Channel support.
       Return Value:
       If successful, the [SkuGroup][google.cloud.channel.v1.SkuGroup] resources.
       The data for each resource is displayed in the alphabetical order of SKU
       group display name.
       The data for each resource is displayed in the ascending order of
       [SkuGroup.display_name][google.cloud.channel.v1.SkuGroup.display_name]
       If unsuccessful, returns an error.
       
    • listSkuGroupBillableSkus

      public com.google.common.util.concurrent.ListenableFuture<ListSkuGroupBillableSkusResponse> listSkuGroupBillableSkus(ListSkuGroupBillableSkusRequest request)
       Lists the Billable SKUs in a given SKU group.
       Possible error codes:
       PERMISSION_DENIED: If the account making the request and the account
       being queried for are different, or the account doesn't exist.
       INVALID_ARGUMENT: Missing or invalid required parameters in the
       request.
       INTERNAL: Any non-user error related to technical issue in the
       backend. In this case, contact cloud channel support.
       Return Value:
       If successful, the [BillableSku][google.cloud.channel.v1.BillableSku]
       resources. The data for each resource is displayed in the ascending order
       of:
       * [BillableSku.service_display_name][google.cloud.channel.v1.BillableSku.service_display_name]
       * [BillableSku.sku_display_name][google.cloud.channel.v1.BillableSku.sku_display_name]
       If unsuccessful, returns an error.
       
    • lookupOffer

      public com.google.common.util.concurrent.ListenableFuture<Offer> lookupOffer(LookupOfferRequest request)
       Returns the requested [Offer][google.cloud.channel.v1.Offer] resource.
       Possible error codes:
       * PERMISSION_DENIED: The entitlement doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: Entitlement or offer was not found.
       Return value:
       The [Offer][google.cloud.channel.v1.Offer] resource.
       
    • listProducts

      public com.google.common.util.concurrent.ListenableFuture<ListProductsResponse> listProducts(ListProductsRequest request)
       Lists the Products the reseller is authorized to sell.
       Possible error codes:
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       
    • listSkus

      public com.google.common.util.concurrent.ListenableFuture<ListSkusResponse> listSkus(ListSkusRequest request)
       Lists the SKUs for a product the reseller is authorized to sell.
       Possible error codes:
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       
    • listOffers

      public com.google.common.util.concurrent.ListenableFuture<ListOffersResponse> listOffers(ListOffersRequest request)
       Lists the Offers the reseller can sell.
       Possible error codes:
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       
    • listPurchasableSkus

      public com.google.common.util.concurrent.ListenableFuture<ListPurchasableSkusResponse> listPurchasableSkus(ListPurchasableSkusRequest request)
       Lists the following:
       * SKUs that you can purchase for a customer
       * SKUs that you can upgrade or downgrade for an entitlement.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       
    • listPurchasableOffers

      public com.google.common.util.concurrent.ListenableFuture<ListPurchasableOffersResponse> listPurchasableOffers(ListPurchasableOffersRequest request)
       Lists the following:
       * Offers that you can purchase for a customer.
       * Offers that you can change for an entitlement.
       Possible error codes:
       * PERMISSION_DENIED:
           * The customer doesn't belong to the reseller
           * The reseller is not authorized to transact on this Product. See
           https://support.google.com/channelservices/answer/9759265
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       
    • queryEligibleBillingAccounts

      public com.google.common.util.concurrent.ListenableFuture<QueryEligibleBillingAccountsResponse> queryEligibleBillingAccounts(QueryEligibleBillingAccountsRequest request)
       Lists the billing accounts that are eligible to purchase particular SKUs
       for a given customer.
       Possible error codes:
       * PERMISSION_DENIED: The customer doesn't belong to the reseller.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       Return value:
       Based on the provided list of SKUs, returns a list of SKU groups that must
       be purchased using the same billing account and the billing accounts
       eligible to purchase each SKU group.
       
    • registerSubscriber

      public com.google.common.util.concurrent.ListenableFuture<RegisterSubscriberResponse> registerSubscriber(RegisterSubscriberRequest request)
       Registers a service account with subscriber privileges on the Pub/Sub
       topic for this Channel Services account or integrator. After you create a
       subscriber, you get the events through
       [SubscriberEvent][google.cloud.channel.v1.SubscriberEvent]
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request and the
       provided reseller account are different, or the impersonated user
       is not a super admin.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The topic name with the registered service email address.
       
    • unregisterSubscriber

      public com.google.common.util.concurrent.ListenableFuture<UnregisterSubscriberResponse> unregisterSubscriber(UnregisterSubscriberRequest request)
       Unregisters a service account with subscriber privileges on the Pub/Sub
       topic created for this Channel Services account or integrator. If there are
       no service accounts left with subscriber privileges, this deletes the
       topic. You can call ListSubscribers to check for these accounts.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request and the
       provided reseller account are different, or the impersonated user
       is not a super admin.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The topic resource doesn't exist.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       The topic name that unregistered the service email address.
       Returns a success response if the service email address wasn't registered
       with the topic.
       
    • listSubscribers

      public com.google.common.util.concurrent.ListenableFuture<ListSubscribersResponse> listSubscribers(ListSubscribersRequest request)
       Lists service accounts with subscriber privileges on the Pub/Sub topic
       created for this Channel Services account or integrator.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request and the
       provided reseller account are different, or the impersonated user
       is not a super admin.
       * INVALID_ARGUMENT: Required request parameters are missing or invalid.
       * NOT_FOUND: The topic resource doesn't exist.
       * INTERNAL: Any non-user error related to a technical issue in the
       backend. Contact Cloud Channel support.
       * UNKNOWN: Any non-user error related to a technical issue in the backend.
       Contact Cloud Channel support.
       Return value:
       A list of service email addresses.
       
    • listEntitlementChanges

      public com.google.common.util.concurrent.ListenableFuture<ListEntitlementChangesResponse> listEntitlementChanges(ListEntitlementChangesRequest request)
       List entitlement history.
       Possible error codes:
       * PERMISSION_DENIED: The reseller account making the request and the
       provided reseller account are different.
       * INVALID_ARGUMENT: Missing or invalid required fields in the request.
       * NOT_FOUND: The parent resource doesn't exist. Usually the result of an
       invalid name parameter.
       * INTERNAL: Any non-user error related to a technical issue in the backend.
       In this case, contact CloudChannel 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 [EntitlementChange][google.cloud.channel.v1.EntitlementChange]s.