550 lines
21 KiB
Ruby
550 lines
21 KiB
Ruby
# 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 'date'
|
|
require 'google/apis/core/base_service'
|
|
require 'google/apis/core/json_representation'
|
|
require 'google/apis/core/hashable'
|
|
require 'google/apis/errors'
|
|
|
|
module Google
|
|
module Apis
|
|
module CloudcommerceprocurementV1
|
|
|
|
# Represents an account that was established by the customer on the service
|
|
# provider's system.
|
|
class Account
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Output only. The approvals for this account. These approvals are used to track
|
|
# actions that are permitted or have been completed by a customer within the
|
|
# context of the provider. This might include a sign up flow or a provisioning
|
|
# step, for example, that the provider can admit to having happened.
|
|
# Corresponds to the JSON property `approvals`
|
|
# @return [Array<Google::Apis::CloudcommerceprocurementV1::Approval>]
|
|
attr_accessor :approvals
|
|
|
|
# Output only. The creation timestamp.
|
|
# Corresponds to the JSON property `createTime`
|
|
# @return [String]
|
|
attr_accessor :create_time
|
|
|
|
# Output only. The custom properties that were collected from the user to create
|
|
# this account.
|
|
# Corresponds to the JSON property `inputProperties`
|
|
# @return [Hash<String,Object>]
|
|
attr_accessor :input_properties
|
|
|
|
# Output only. The resource name of the account. Account names have the form `
|
|
# accounts/`account_id``.
|
|
# Corresponds to the JSON property `name`
|
|
# @return [String]
|
|
attr_accessor :name
|
|
|
|
# Output only. The identifier of the service provider that this account was
|
|
# created against. Each service provider is assigned a unique provider value
|
|
# when they onboard with Cloud Commerce platform.
|
|
# Corresponds to the JSON property `provider`
|
|
# @return [String]
|
|
attr_accessor :provider
|
|
|
|
# Output only. The state of the account. This is used to decide whether the
|
|
# customer is in good standing with the provider and is able to make purchases.
|
|
# An account might not be able to make a purchase if the billing account is
|
|
# suspended, for example.
|
|
# Corresponds to the JSON property `state`
|
|
# @return [String]
|
|
attr_accessor :state
|
|
|
|
# Output only. The last update timestamp.
|
|
# Corresponds to the JSON property `updateTime`
|
|
# @return [String]
|
|
attr_accessor :update_time
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@approvals = args[:approvals] if args.key?(:approvals)
|
|
@create_time = args[:create_time] if args.key?(:create_time)
|
|
@input_properties = args[:input_properties] if args.key?(:input_properties)
|
|
@name = args[:name] if args.key?(:name)
|
|
@provider = args[:provider] if args.key?(:provider)
|
|
@state = args[:state] if args.key?(:state)
|
|
@update_time = args[:update_time] if args.key?(:update_time)
|
|
end
|
|
end
|
|
|
|
# An approval for some action on an account.
|
|
class Approval
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Output only. The name of the approval.
|
|
# Corresponds to the JSON property `name`
|
|
# @return [String]
|
|
attr_accessor :name
|
|
|
|
# Output only. An explanation for the state of the approval.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
# Output only. The state of the approval.
|
|
# Corresponds to the JSON property `state`
|
|
# @return [String]
|
|
attr_accessor :state
|
|
|
|
# Optional. The last update timestamp of the approval.
|
|
# Corresponds to the JSON property `updateTime`
|
|
# @return [String]
|
|
attr_accessor :update_time
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@name = args[:name] if args.key?(:name)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
@state = args[:state] if args.key?(:state)
|
|
@update_time = args[:update_time] if args.key?(:update_time)
|
|
end
|
|
end
|
|
|
|
# Request message for PartnerProcurementService.ApproveAccount.
|
|
class ApproveAccountRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The name of the approval being approved. If absent and there is only one
|
|
# approval possible, that approval will be granted. If absent and there are many
|
|
# approvals possible, the request will fail with a 400 Bad Request. Optional.
|
|
# Corresponds to the JSON property `approvalName`
|
|
# @return [String]
|
|
attr_accessor :approval_name
|
|
|
|
# Set of properties that should be associated with the account. Optional.
|
|
# Corresponds to the JSON property `properties`
|
|
# @return [Hash<String,String>]
|
|
attr_accessor :properties
|
|
|
|
# Free form text string explaining the approval reason. Optional. Max allowed
|
|
# length: 256 bytes. Longer strings will be truncated.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@approval_name = args[:approval_name] if args.key?(:approval_name)
|
|
@properties = args[:properties] if args.key?(:properties)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
end
|
|
end
|
|
|
|
# Request message for [PartnerProcurementService.ApproveEntitlementPlanChange[].
|
|
class ApproveEntitlementPlanChangeRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Name of the pending plan that is being approved. Required.
|
|
# Corresponds to the JSON property `pendingPlanName`
|
|
# @return [String]
|
|
attr_accessor :pending_plan_name
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@pending_plan_name = args[:pending_plan_name] if args.key?(:pending_plan_name)
|
|
end
|
|
end
|
|
|
|
# Request message for [PartnerProcurementService.ApproveEntitlement[].
|
|
class ApproveEntitlementRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Set of properties that should be associated with the entitlement. Optional.
|
|
# Corresponds to the JSON property `properties`
|
|
# @return [Hash<String,String>]
|
|
attr_accessor :properties
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@properties = args[:properties] if args.key?(:properties)
|
|
end
|
|
end
|
|
|
|
# A resource using (consuming) this entitlement.
|
|
class Consumer
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# A project name with format `projects/`.
|
|
# Corresponds to the JSON property `project`
|
|
# @return [String]
|
|
attr_accessor :project
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@project = args[:project] if args.key?(:project)
|
|
end
|
|
end
|
|
|
|
# A generic empty message that you can re-use to avoid defining duplicated empty
|
|
# messages in your APIs. A typical example is to use it as the request or the
|
|
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
|
# protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
|
|
# `Empty` is empty JSON object ````.
|
|
class Empty
|
|
include Google::Apis::Core::Hashable
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
end
|
|
end
|
|
|
|
# Represents a procured product of a customer. Next Id: 24
|
|
class Entitlement
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Output only. The resource name of the account that this entitlement is based
|
|
# on, if any.
|
|
# Corresponds to the JSON property `account`
|
|
# @return [String]
|
|
attr_accessor :account
|
|
|
|
# Output only. The resources using this entitlement, if applicable.
|
|
# Corresponds to the JSON property `consumers`
|
|
# @return [Array<Google::Apis::CloudcommerceprocurementV1::Consumer>]
|
|
attr_accessor :consumers
|
|
|
|
# Output only. The creation timestamp.
|
|
# Corresponds to the JSON property `createTime`
|
|
# @return [String]
|
|
attr_accessor :create_time
|
|
|
|
# Output only. The custom properties that were collected from the user to create
|
|
# this entitlement.
|
|
# Corresponds to the JSON property `inputProperties`
|
|
# @return [Hash<String,Object>]
|
|
attr_accessor :input_properties
|
|
|
|
# Provider-supplied message that is displayed to the end user. Currently this is
|
|
# used to communicate progress and ETA for provisioning. This field can be
|
|
# updated only when a user is waiting for an action from the provider, i.e.
|
|
# entitlement state is EntitlementState.ENTITLEMENT_ACTIVATION_REQUESTED or
|
|
# EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL. This field is
|
|
# cleared automatically when the entitlement state changes.
|
|
# Corresponds to the JSON property `messageToUser`
|
|
# @return [String]
|
|
attr_accessor :message_to_user
|
|
|
|
# Output only. The resource name of the entitlement. Entitlement names have the
|
|
# form `providers/`provider_id`/entitlements/`entitlement_id``.
|
|
# Corresponds to the JSON property `name`
|
|
# @return [String]
|
|
attr_accessor :name
|
|
|
|
# Output only. The name of the offer the entitlement is switching to upon a
|
|
# pending plan change. Only exists if the pending plan change is moving to an
|
|
# offer. Format: 'projects/`project`/services/`service`/privateOffers/`offer-id`'
|
|
# OR 'projects/`project`/services/`service`/standardOffers/`offer-id`',
|
|
# depending on whether the offer is private or public.
|
|
# Corresponds to the JSON property `newPendingOffer`
|
|
# @return [String]
|
|
attr_accessor :new_pending_offer
|
|
|
|
# Output only. The identifier of the pending new plan. Required if the product
|
|
# has plans and the entitlement has a pending plan change.
|
|
# Corresponds to the JSON property `newPendingPlan`
|
|
# @return [String]
|
|
attr_accessor :new_pending_plan
|
|
|
|
# Output only. The name of the offer that was procured. Field is empty if order
|
|
# was not made using an offer. Format: 'projects/`project`/services/`service`/
|
|
# privateOffers/`offer-id`' OR 'projects/`project`/services/`service`/
|
|
# standardOffers/`offer-id`', depending on whether the offer is private or
|
|
# public.
|
|
# Corresponds to the JSON property `offer`
|
|
# @return [String]
|
|
attr_accessor :offer
|
|
|
|
# Output only. End time for the Offer association corresponding to this
|
|
# entitlement. The field is only populated if the entitlement is currently
|
|
# associated with an Offer.
|
|
# Corresponds to the JSON property `offerEndTime`
|
|
# @return [String]
|
|
attr_accessor :offer_end_time
|
|
|
|
# Output only. The identifier of the plan that was procured. Required if the
|
|
# product has plans.
|
|
# Corresponds to the JSON property `plan`
|
|
# @return [String]
|
|
attr_accessor :plan
|
|
|
|
# Output only. The identifier of the entity that was purchased. This may
|
|
# actually represent a product, quote, or offer.
|
|
# Corresponds to the JSON property `product`
|
|
# @return [String]
|
|
attr_accessor :product
|
|
|
|
# Output only. The identifier of the product that was procured.
|
|
# Corresponds to the JSON property `productExternalName`
|
|
# @return [String]
|
|
attr_accessor :product_external_name
|
|
|
|
# Output only. The identifier of the service provider that this entitlement was
|
|
# created against. Each service provider is assigned a unique provider value
|
|
# when they onboard with Cloud Commerce platform.
|
|
# Corresponds to the JSON property `provider`
|
|
# @return [String]
|
|
attr_accessor :provider
|
|
|
|
# Output only. The identifier of the quote that was used to procure. Empty if
|
|
# the order is not purchased using a quote.
|
|
# Corresponds to the JSON property `quoteExternalName`
|
|
# @return [String]
|
|
attr_accessor :quote_external_name
|
|
|
|
# Output only. The state of the entitlement.
|
|
# Corresponds to the JSON property `state`
|
|
# @return [String]
|
|
attr_accessor :state
|
|
|
|
# Output only. End time for the subscription corresponding to this entitlement.
|
|
# Corresponds to the JSON property `subscriptionEndTime`
|
|
# @return [String]
|
|
attr_accessor :subscription_end_time
|
|
|
|
# Output only. The last update timestamp.
|
|
# Corresponds to the JSON property `updateTime`
|
|
# @return [String]
|
|
attr_accessor :update_time
|
|
|
|
# Output only. The consumerId to use when reporting usage through the Service
|
|
# Control API. See the consumerId field at [Reporting Metrics](https://cloud.
|
|
# google.com/service-control/reporting-metrics) for more details. This field is
|
|
# present only if the product has usage-based billing configured.
|
|
# Corresponds to the JSON property `usageReportingId`
|
|
# @return [String]
|
|
attr_accessor :usage_reporting_id
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@account = args[:account] if args.key?(:account)
|
|
@consumers = args[:consumers] if args.key?(:consumers)
|
|
@create_time = args[:create_time] if args.key?(:create_time)
|
|
@input_properties = args[:input_properties] if args.key?(:input_properties)
|
|
@message_to_user = args[:message_to_user] if args.key?(:message_to_user)
|
|
@name = args[:name] if args.key?(:name)
|
|
@new_pending_offer = args[:new_pending_offer] if args.key?(:new_pending_offer)
|
|
@new_pending_plan = args[:new_pending_plan] if args.key?(:new_pending_plan)
|
|
@offer = args[:offer] if args.key?(:offer)
|
|
@offer_end_time = args[:offer_end_time] if args.key?(:offer_end_time)
|
|
@plan = args[:plan] if args.key?(:plan)
|
|
@product = args[:product] if args.key?(:product)
|
|
@product_external_name = args[:product_external_name] if args.key?(:product_external_name)
|
|
@provider = args[:provider] if args.key?(:provider)
|
|
@quote_external_name = args[:quote_external_name] if args.key?(:quote_external_name)
|
|
@state = args[:state] if args.key?(:state)
|
|
@subscription_end_time = args[:subscription_end_time] if args.key?(:subscription_end_time)
|
|
@update_time = args[:update_time] if args.key?(:update_time)
|
|
@usage_reporting_id = args[:usage_reporting_id] if args.key?(:usage_reporting_id)
|
|
end
|
|
end
|
|
|
|
# Response message for [PartnerProcurementService.ListAccounts[].
|
|
class ListAccountsResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The list of accounts in this response.
|
|
# Corresponds to the JSON property `accounts`
|
|
# @return [Array<Google::Apis::CloudcommerceprocurementV1::Account>]
|
|
attr_accessor :accounts
|
|
|
|
# The token for fetching the next page.
|
|
# Corresponds to the JSON property `nextPageToken`
|
|
# @return [String]
|
|
attr_accessor :next_page_token
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@accounts = args[:accounts] if args.key?(:accounts)
|
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
end
|
|
end
|
|
|
|
# Response message for PartnerProcurementService.ListEntitlements.
|
|
class ListEntitlementsResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The list of entitlements in this response.
|
|
# Corresponds to the JSON property `entitlements`
|
|
# @return [Array<Google::Apis::CloudcommerceprocurementV1::Entitlement>]
|
|
attr_accessor :entitlements
|
|
|
|
# The token for fetching the next page.
|
|
# Corresponds to the JSON property `nextPageToken`
|
|
# @return [String]
|
|
attr_accessor :next_page_token
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@entitlements = args[:entitlements] if args.key?(:entitlements)
|
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
end
|
|
end
|
|
|
|
# Request message for PartnerProcurementService.RejectAccount.
|
|
class RejectAccountRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The name of the approval being rejected. If absent and there is only one
|
|
# approval possible, that approval will be rejected. If absent and there are
|
|
# many approvals possible, the request will fail with a 400 Bad Request.
|
|
# Optional.
|
|
# Corresponds to the JSON property `approvalName`
|
|
# @return [String]
|
|
attr_accessor :approval_name
|
|
|
|
# Free form text string explaining the rejection reason. Max allowed length: 256
|
|
# bytes. Longer strings will be truncated.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@approval_name = args[:approval_name] if args.key?(:approval_name)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
end
|
|
end
|
|
|
|
# Request message for PartnerProcurementService.RejectEntitlementPlanChange.
|
|
class RejectEntitlementPlanChangeRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Name of the pending plan that is being rejected. Required.
|
|
# Corresponds to the JSON property `pendingPlanName`
|
|
# @return [String]
|
|
attr_accessor :pending_plan_name
|
|
|
|
# Free form text string explaining the rejection reason. Max allowed length: 256
|
|
# bytes. Longer strings will be truncated.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@pending_plan_name = args[:pending_plan_name] if args.key?(:pending_plan_name)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
end
|
|
end
|
|
|
|
# Request message for PartnerProcurementService.RejectEntitlement.
|
|
class RejectEntitlementRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Free form text string explaining the rejection reason. Max allowed length: 256
|
|
# bytes. Longer strings will be truncated.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
end
|
|
end
|
|
|
|
# Request message for for PartnerProcurementService.ResetAccount.
|
|
class ResetAccountRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
end
|
|
end
|
|
|
|
# Request message for ParterProcurementService.SuspendEntitlement. This is not
|
|
# yet supported.
|
|
class SuspendEntitlementRequest
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# A free-form reason string, explaining the reason for suspension request.
|
|
# Corresponds to the JSON property `reason`
|
|
# @return [String]
|
|
attr_accessor :reason
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@reason = args[:reason] if args.key?(:reason)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|