viam.proto.app.billing ====================== .. py:module:: viam.proto.app.billing .. autoapi-nested-parse:: @generated by Viam. Do not edit manually! Classes ------- .. autoapisummary:: viam.proto.app.billing.BillingServiceBase viam.proto.app.billing.BillingServiceStub viam.proto.app.billing.UnimplementedBillingServiceBase viam.proto.app.billing.GetAvailableBillingTiersRequest viam.proto.app.billing.GetAvailableBillingTiersResponse viam.proto.app.billing.GetCurrentMonthUsageRequest viam.proto.app.billing.GetCurrentMonthUsageResponse viam.proto.app.billing.GetInvoicePdfRequest viam.proto.app.billing.GetInvoicePdfResponse viam.proto.app.billing.GetInvoicesSummaryRequest viam.proto.app.billing.GetInvoicesSummaryResponse viam.proto.app.billing.GetOrgBillingInformationRequest viam.proto.app.billing.GetOrgBillingInformationResponse viam.proto.app.billing.InvoiceSummary viam.proto.app.billing.PaymentMethodCard viam.proto.app.billing.PaymentMethodType viam.proto.app.billing.ResourceUsageCosts viam.proto.app.billing.ResourceUsageCostsBySource viam.proto.app.billing.SendPaymentRequiredEmailRequest viam.proto.app.billing.SendPaymentRequiredEmailResponse viam.proto.app.billing.SourceType viam.proto.app.billing.UpdateOrganizationBillingTierRequest viam.proto.app.billing.UpdateOrganizationBillingTierResponse viam.proto.app.billing.UsageCost viam.proto.app.billing.UsageCostType Module Contents --------------- .. py:class:: BillingServiceBase Bases: :py:obj:`abc.ABC` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: GetCurrentMonthUsage(stream: grpclib.server.Stream[app.v1.billing_pb2.GetCurrentMonthUsageRequest, app.v1.billing_pb2.GetCurrentMonthUsageResponse]) -> None :abstractmethod: :async: .. py:method:: GetOrgBillingInformation(stream: grpclib.server.Stream[app.v1.billing_pb2.GetOrgBillingInformationRequest, app.v1.billing_pb2.GetOrgBillingInformationResponse]) -> None :abstractmethod: :async: .. py:method:: GetInvoicesSummary(stream: grpclib.server.Stream[app.v1.billing_pb2.GetInvoicesSummaryRequest, app.v1.billing_pb2.GetInvoicesSummaryResponse]) -> None :abstractmethod: :async: .. py:method:: GetInvoicePdf(stream: grpclib.server.Stream[app.v1.billing_pb2.GetInvoicePdfRequest, app.v1.billing_pb2.GetInvoicePdfResponse]) -> None :abstractmethod: :async: .. py:method:: SendPaymentRequiredEmail(stream: grpclib.server.Stream[app.v1.billing_pb2.SendPaymentRequiredEmailRequest, app.v1.billing_pb2.SendPaymentRequiredEmailResponse]) -> None :abstractmethod: :async: .. py:method:: GetAvailableBillingTiers(stream: grpclib.server.Stream[app.v1.billing_pb2.GetAvailableBillingTiersRequest, app.v1.billing_pb2.GetAvailableBillingTiersResponse]) -> None :abstractmethod: :async: .. py:method:: UpdateOrganizationBillingTier(stream: grpclib.server.Stream[app.v1.billing_pb2.UpdateOrganizationBillingTierRequest, app.v1.billing_pb2.UpdateOrganizationBillingTierResponse]) -> None :abstractmethod: :async: .. py:method:: __mapping__() -> Dict[str, grpclib.const.Handler] .. py:class:: BillingServiceStub(channel: grpclib.client.Channel) .. py:attribute:: GetCurrentMonthUsage .. py:attribute:: GetOrgBillingInformation .. py:attribute:: GetInvoicesSummary .. py:attribute:: GetInvoicePdf .. py:attribute:: SendPaymentRequiredEmail .. py:attribute:: GetAvailableBillingTiers .. py:attribute:: UpdateOrganizationBillingTier .. py:class:: UnimplementedBillingServiceBase Bases: :py:obj:`BillingServiceBase` Helper class that provides a standard way to create an ABC using inheritance. .. py:method:: GetCurrentMonthUsage(stream: grpclib.server.Stream[app.v1.billing_pb2.GetCurrentMonthUsageRequest, app.v1.billing_pb2.GetCurrentMonthUsageResponse]) -> None :async: .. py:method:: GetOrgBillingInformation(stream: grpclib.server.Stream[app.v1.billing_pb2.GetOrgBillingInformationRequest, app.v1.billing_pb2.GetOrgBillingInformationResponse]) -> None :async: .. py:method:: GetInvoicesSummary(stream: grpclib.server.Stream[app.v1.billing_pb2.GetInvoicesSummaryRequest, app.v1.billing_pb2.GetInvoicesSummaryResponse]) -> None :async: .. py:method:: GetInvoicePdf(stream: grpclib.server.Stream[app.v1.billing_pb2.GetInvoicePdfRequest, app.v1.billing_pb2.GetInvoicePdfResponse]) -> None :async: .. py:method:: SendPaymentRequiredEmail(stream: grpclib.server.Stream[app.v1.billing_pb2.SendPaymentRequiredEmailRequest, app.v1.billing_pb2.SendPaymentRequiredEmailResponse]) -> None :async: .. py:method:: GetAvailableBillingTiers(stream: grpclib.server.Stream[app.v1.billing_pb2.GetAvailableBillingTiersRequest, app.v1.billing_pb2.GetAvailableBillingTiersResponse]) -> None :async: .. py:method:: UpdateOrganizationBillingTier(stream: grpclib.server.Stream[app.v1.billing_pb2.UpdateOrganizationBillingTierRequest, app.v1.billing_pb2.UpdateOrganizationBillingTierResponse]) -> None :async: .. py:class:: GetAvailableBillingTiersRequest Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: GetAvailableBillingTiersResponse(*, tiers: collections.abc.Iterable[str] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:property:: tiers :type: google.protobuf.internal.containers.RepeatedScalarFieldContainer[str] .. py:class:: GetCurrentMonthUsageRequest(*, org_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: org_id :type: str .. py:class:: GetCurrentMonthUsageResponse(*, start_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., end_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., resource_usage_costs_by_source: collections.abc.Iterable[global___ResourceUsageCostsBySource] | None = ..., subtotal: float = ..., cloud_storage_usage_cost: float = ..., data_upload_usage_cost: float = ..., data_egres_usage_cost: float = ..., remote_control_usage_cost: float = ..., standard_compute_usage_cost: float = ..., discount_amount: float = ..., total_usage_with_discount: float = ..., total_usage_without_discount: float = ..., per_machine_usage_cost: float = ..., binary_data_cloud_storage_usage_cost: float = ..., other_cloud_storage_usage_cost: float = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: subtotal :type: float .. py:attribute:: cloud_storage_usage_cost :type: float all fields below are deprecated .. py:attribute:: data_upload_usage_cost :type: float .. py:attribute:: data_egres_usage_cost :type: float .. py:attribute:: remote_control_usage_cost :type: float .. py:attribute:: standard_compute_usage_cost :type: float .. py:attribute:: discount_amount :type: float .. py:attribute:: total_usage_with_discount :type: float .. py:attribute:: total_usage_without_discount :type: float .. py:attribute:: per_machine_usage_cost :type: float .. py:attribute:: binary_data_cloud_storage_usage_cost :type: float .. py:attribute:: other_cloud_storage_usage_cost :type: float .. py:property:: start_date :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: end_date :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: resource_usage_costs_by_source :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceUsageCostsBySource] .. py:method:: HasField(field_name: Literal['end_date', b'end_date', 'start_date', b'start_date']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: GetInvoicePdfRequest(*, id: str = ..., org_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:attribute:: org_id :type: str .. py:class:: GetInvoicePdfResponse(*, chunk: bytes = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: chunk :type: bytes .. py:class:: GetInvoicesSummaryRequest(*, org_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: org_id :type: str .. py:class:: GetInvoicesSummaryResponse(*, outstanding_balance: float = ..., invoices: collections.abc.Iterable[global___InvoiceSummary] | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: outstanding_balance :type: float all unpaid balances at the end of the last billing cycle .. py:property:: invoices :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InvoiceSummary] all previous invoices .. py:class:: GetOrgBillingInformationRequest(*, org_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: org_id :type: str .. py:class:: GetOrgBillingInformationResponse(*, type: global___PaymentMethodType = ..., billing_email: str = ..., method: global___PaymentMethodCard | None = ..., billing_tier: str | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: type :type: global___PaymentMethodType .. py:attribute:: billing_email :type: str .. py:attribute:: billing_tier :type: str Only return billing_tier for billing dashboard admin users .. py:property:: method :type: global___PaymentMethodCard defined if type is PAYMENT_METHOD_TYPE_CARD .. py:method:: HasField(field_name: Literal['_billing_tier', b'_billing_tier', '_method', b'_method', 'billing_tier', b'billing_tier', 'method', b'method']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:method:: WhichOneof(oneof_group: Literal['_billing_tier', b'_billing_tier']) -> Literal['billing_tier'] | None WhichOneof(oneof_group: Literal['_method', b'_method']) -> Literal['method'] | None Returns the name of the field that is set inside a oneof group. If no field is set, returns None. :param oneof_group: the name of the oneof group to check. :type oneof_group: str :returns: The name of the group that is set, or None. :rtype: str or None :raises ValueError: no group with the given name exists .. py:class:: InvoiceSummary(*, id: str = ..., invoice_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., invoice_amount: float = ..., status: str = ..., due_date: google.protobuf.timestamp_pb2.Timestamp | None = ..., paid_date: google.protobuf.timestamp_pb2.Timestamp | None = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: id :type: str .. py:attribute:: invoice_amount :type: float .. py:attribute:: status :type: str .. py:property:: invoice_date :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: due_date :type: google.protobuf.timestamp_pb2.Timestamp .. py:property:: paid_date :type: google.protobuf.timestamp_pb2.Timestamp .. py:method:: HasField(field_name: Literal['due_date', b'due_date', 'invoice_date', b'invoice_date', 'paid_date', b'paid_date']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: PaymentMethodCard(*, brand: str = ..., last_four_digits: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: brand :type: str .. py:attribute:: last_four_digits :type: str .. py:class:: PaymentMethodType Bases: :py:obj:`_PaymentMethodType` .. py:class:: ResourceUsageCosts(*, usage_costs: collections.abc.Iterable[global___UsageCost] | None = ..., discount: float = ..., total_with_discount: float = ..., total_without_discount: float = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: discount :type: float .. py:attribute:: total_with_discount :type: float .. py:attribute:: total_without_discount :type: float .. py:property:: usage_costs :type: google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UsageCost] .. py:class:: ResourceUsageCostsBySource(*, source_type: global___SourceType = ..., resource_usage_costs: global___ResourceUsageCosts | None = ..., tier_name: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: source_type :type: global___SourceType .. py:attribute:: tier_name :type: str .. py:property:: resource_usage_costs :type: global___ResourceUsageCosts .. py:method:: HasField(field_name: Literal['resource_usage_costs', b'resource_usage_costs']) -> bool Checks if a certain field is set for the message. For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, :exc:`ValueError` will be raised. :param field_name: The name of the field to check for presence. :type field_name: str :returns: Whether a value has been set for the named field. :rtype: bool :raises ValueError: if the `field_name` is not a member of this message. .. py:class:: SendPaymentRequiredEmailRequest(*, customer_org_id: str = ..., billing_owner_org_id: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: customer_org_id :type: str .. py:attribute:: billing_owner_org_id :type: str .. py:class:: SendPaymentRequiredEmailResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: SourceType Bases: :py:obj:`_SourceType` .. py:class:: UpdateOrganizationBillingTierRequest(*, organization_id: str = ..., billing_tier: str = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: organization_id :type: str .. py:attribute:: billing_tier :type: str .. py:class:: UpdateOrganizationBillingTierResponse Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:class:: UsageCost(*, resource_type: global___UsageCostType = ..., cost: float = ...) Bases: :py:obj:`google.protobuf.message.Message` Abstract base class for protocol messages. Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below. .. py:attribute:: resource_type :type: global___UsageCostType .. py:attribute:: cost :type: float .. py:class:: UsageCostType Bases: :py:obj:`_UsageCostType`