google-apis-cloudbilling_v1beta 0.6.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -563,6 +563,63 @@ module Google
563
563
  end
564
564
  end
565
565
 
566
+ # A representation of a decimal value, such as 2.5. Clients may convert values
567
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
568
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
569
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
570
+ # org/3/library/decimal.html
571
+ class Decimal
572
+ include Google::Apis::Core::Hashable
573
+
574
+ # The decimal value, as a string. The string representation consists of an
575
+ # optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of
576
+ # zero or more decimal digits ("the integer"), optionally followed by a fraction,
577
+ # optionally followed by an exponent. An empty string **should** be interpreted
578
+ # as `0`. The fraction consists of a decimal point followed by zero or more
579
+ # decimal digits. The string must contain at least one digit in either the
580
+ # integer or the fraction. The number formed by the sign, the integer and the
581
+ # fraction is referred to as the significand. The exponent consists of the
582
+ # character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal
583
+ # digits. Services **should** normalize decimal values before storing them by: -
584
+ # Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-
585
+ # length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent
586
+ # character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing
587
+ # an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may**
588
+ # perform additional normalization based on its own needs and the internal
589
+ # decimal implementation selected, such as shifting the decimal point and
590
+ # exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services
591
+ # **may** preserve trailing zeroes in the fraction to indicate increased
592
+ # precision, but are not required to do so. Note that only the `.` character is
593
+ # supported to divide the integer and the fraction; `,` **should not** be
594
+ # supported regardless of locale. Additionally, thousand separators **should not*
595
+ # * be supported. If a service does support them, values **must** be normalized.
596
+ # The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign =
597
+ # '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | '
598
+ # E') [Sign] Digits; Digits = ` '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '
599
+ # 8' | '9' `; Services **should** clearly document the range of supported values,
600
+ # the maximum supported precision (total number of digits), and, if applicable,
601
+ # the scale (number of digits after the decimal point), as well as how it
602
+ # behaves when receiving out-of-bounds values. Services **may** choose to accept
603
+ # values passed as input even when the value has a higher precision or scale
604
+ # than the service supports, and **should** round the value to fit the supported
605
+ # scale. Alternatively, the service **may** error with `400 Bad Request` (`
606
+ # INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should**
607
+ # error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service
608
+ # receives a value outside of the supported range.
609
+ # Corresponds to the JSON property `value`
610
+ # @return [String]
611
+ attr_accessor :value
612
+
613
+ def initialize(**args)
614
+ update!(**args)
615
+ end
616
+
617
+ # Update properties of this object
618
+ def update!(**args)
619
+ @value = args[:value] if args.key?(:value)
620
+ end
621
+ end
622
+
566
623
  # Area contains dual locations.
567
624
  class DualRegional
568
625
  include Google::Apis::Core::Hashable
@@ -683,6 +740,1482 @@ module Google
683
740
  end
684
741
  end
685
742
 
743
+ # Encapsulates the aggregation information such as aggregation level and
744
+ # interval for a billing account price.
745
+ class GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo
746
+ include Google::Apis::Core::Hashable
747
+
748
+ # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
749
+ # interval indicates that usage is aggregated every month.
750
+ # Corresponds to the JSON property `interval`
751
+ # @return [String]
752
+ attr_accessor :interval
753
+
754
+ # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
755
+ # indicates that usage is aggregated across all projects in a single account.
756
+ # Corresponds to the JSON property `level`
757
+ # @return [String]
758
+ attr_accessor :level
759
+
760
+ def initialize(**args)
761
+ update!(**args)
762
+ end
763
+
764
+ # Update properties of this object
765
+ def update!(**args)
766
+ @interval = args[:interval] if args.key?(:interval)
767
+ @level = args[:level] if args.key?(:level)
768
+ end
769
+ end
770
+
771
+ # Encapsulates the latest price for the given billing account SKU.
772
+ class GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice
773
+ include Google::Apis::Core::Hashable
774
+
775
+ # ISO-4217 currency code for the price.
776
+ # Corresponds to the JSON property `currencyCode`
777
+ # @return [String]
778
+ attr_accessor :currency_code
779
+
780
+ # Resource name for the latest billing account price.
781
+ # Corresponds to the JSON property `name`
782
+ # @return [String]
783
+ attr_accessor :name
784
+
785
+ # Encapsulates a price reason which contains background information about the
786
+ # origin of the price.
787
+ # Corresponds to the JSON property `priceReason`
788
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaPriceReason]
789
+ attr_accessor :price_reason
790
+
791
+ # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
792
+ # offered by pricing tiers. The price have 1 or more rate pricing tiers.
793
+ # Corresponds to the JSON property `rate`
794
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRate]
795
+ attr_accessor :rate
796
+
797
+ # Type of the price. It can have values: ["unspecified", "rate"].
798
+ # Corresponds to the JSON property `valueType`
799
+ # @return [String]
800
+ attr_accessor :value_type
801
+
802
+ def initialize(**args)
803
+ update!(**args)
804
+ end
805
+
806
+ # Update properties of this object
807
+ def update!(**args)
808
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
809
+ @name = args[:name] if args.key?(:name)
810
+ @price_reason = args[:price_reason] if args.key?(:price_reason)
811
+ @rate = args[:rate] if args.key?(:rate)
812
+ @value_type = args[:value_type] if args.key?(:value_type)
813
+ end
814
+ end
815
+
816
+ # Encapsulates a default price which is the current list price.
817
+ class GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice
818
+ include Google::Apis::Core::Hashable
819
+
820
+ def initialize(**args)
821
+ update!(**args)
822
+ end
823
+
824
+ # Update properties of this object
825
+ def update!(**args)
826
+ end
827
+ end
828
+
829
+ # Encapsulates a discount off the list price, anchored to the list price as of a
830
+ # fixed time.
831
+ class GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # A representation of a decimal value, such as 2.5. Clients may convert values
835
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
836
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
837
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
838
+ # org/3/library/decimal.html
839
+ # Corresponds to the JSON property `discountPercent`
840
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
841
+ attr_accessor :discount_percent
842
+
843
+ # Type of the fixed discount scope which indicates the source of the discount.
844
+ # It can have values such as 'sku-group'.
845
+ # Corresponds to the JSON property `discountScopeType`
846
+ # @return [String]
847
+ attr_accessor :discount_scope_type
848
+
849
+ # Time that the fixed discount is anchored to.
850
+ # Corresponds to the JSON property `fixTime`
851
+ # @return [String]
852
+ attr_accessor :fix_time
853
+
854
+ # SKU group where the fixed discount comes from.
855
+ # Corresponds to the JSON property `skuGroup`
856
+ # @return [String]
857
+ attr_accessor :sku_group
858
+
859
+ def initialize(**args)
860
+ update!(**args)
861
+ end
862
+
863
+ # Update properties of this object
864
+ def update!(**args)
865
+ @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
866
+ @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
867
+ @fix_time = args[:fix_time] if args.key?(:fix_time)
868
+ @sku_group = args[:sku_group] if args.key?(:sku_group)
869
+ end
870
+ end
871
+
872
+ # Encapsulates a set fixed price applicable during the terms of a contract
873
+ # agreement.
874
+ class GoogleCloudBillingBillingaccountpricesV1betaFixedPrice
875
+ include Google::Apis::Core::Hashable
876
+
877
+ def initialize(**args)
878
+ update!(**args)
879
+ end
880
+
881
+ # Update properties of this object
882
+ def update!(**args)
883
+ end
884
+ end
885
+
886
+ # Encapsulates a discount off the current list price, not anchored to any list
887
+ # price as of a fixed time.
888
+ class GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount
889
+ include Google::Apis::Core::Hashable
890
+
891
+ # A representation of a decimal value, such as 2.5. Clients may convert values
892
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
893
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
894
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
895
+ # org/3/library/decimal.html
896
+ # Corresponds to the JSON property `discountPercent`
897
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
898
+ attr_accessor :discount_percent
899
+
900
+ # Type of the floating discount scope which indicates the source of the discount.
901
+ # It can have values such as 'sku-group'.
902
+ # Corresponds to the JSON property `discountScopeType`
903
+ # @return [String]
904
+ attr_accessor :discount_scope_type
905
+
906
+ # SKU group where the floating discount comes from.
907
+ # Corresponds to the JSON property `skuGroup`
908
+ # @return [String]
909
+ attr_accessor :sku_group
910
+
911
+ def initialize(**args)
912
+ update!(**args)
913
+ end
914
+
915
+ # Update properties of this object
916
+ def update!(**args)
917
+ @discount_percent = args[:discount_percent] if args.key?(:discount_percent)
918
+ @discount_scope_type = args[:discount_scope_type] if args.key?(:discount_scope_type)
919
+ @sku_group = args[:sku_group] if args.key?(:sku_group)
920
+ end
921
+ end
922
+
923
+ # Encapsulates a contract feature that the list price (DefaultPrice) will be
924
+ # used for the price if the current list price drops lower than the custom fixed
925
+ # price. Available to new contracts after March 21, 2022. Applies to all fixed
926
+ # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
927
+ # and MergedPrice.
928
+ class GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling
929
+ include Google::Apis::Core::Hashable
930
+
931
+ def initialize(**args)
932
+ update!(**args)
933
+ end
934
+
935
+ # Update properties of this object
936
+ def update!(**args)
937
+ end
938
+ end
939
+
940
+ # Encapsulates a price after merging from multiple sources. With merged tiers,
941
+ # each individual tier can be from a different source with different discount
942
+ # types.
943
+ class GoogleCloudBillingBillingaccountpricesV1betaMergedPrice
944
+ include Google::Apis::Core::Hashable
945
+
946
+ def initialize(**args)
947
+ update!(**args)
948
+ end
949
+
950
+ # Update properties of this object
951
+ def update!(**args)
952
+ end
953
+ end
954
+
955
+ # Encapsulates a price migrated from other SKUs.
956
+ class GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice
957
+ include Google::Apis::Core::Hashable
958
+
959
+ # Encapsulates a type of MigratedPrice where the source SKU floating discount is
960
+ # applied on the target SKU's default price.
961
+ # Corresponds to the JSON property `sourceDiscountOnTargetPrice`
962
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice]
963
+ attr_accessor :source_discount_on_target_price
964
+
965
+ # Source SKU where the discount is migrated from.
966
+ # Corresponds to the JSON property `sourceSku`
967
+ # @return [String]
968
+ attr_accessor :source_sku
969
+
970
+ # Type of the migrated price. It can have values such as 'source-discount-on-
971
+ # target-price'.
972
+ # Corresponds to the JSON property `type`
973
+ # @return [String]
974
+ attr_accessor :type
975
+
976
+ def initialize(**args)
977
+ update!(**args)
978
+ end
979
+
980
+ # Update properties of this object
981
+ def update!(**args)
982
+ @source_discount_on_target_price = args[:source_discount_on_target_price] if args.key?(:source_discount_on_target_price)
983
+ @source_sku = args[:source_sku] if args.key?(:source_sku)
984
+ @type = args[:type] if args.key?(:type)
985
+ end
986
+ end
987
+
988
+ # Encapsulates a price reason which contains background information about the
989
+ # origin of the price.
990
+ class GoogleCloudBillingBillingaccountpricesV1betaPriceReason
991
+ include Google::Apis::Core::Hashable
992
+
993
+ # Encapsulates a default price which is the current list price.
994
+ # Corresponds to the JSON property `defaultPrice`
995
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice]
996
+ attr_accessor :default_price
997
+
998
+ # Encapsulates a discount off the list price, anchored to the list price as of a
999
+ # fixed time.
1000
+ # Corresponds to the JSON property `fixedDiscount`
1001
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount]
1002
+ attr_accessor :fixed_discount
1003
+
1004
+ # Encapsulates a set fixed price applicable during the terms of a contract
1005
+ # agreement.
1006
+ # Corresponds to the JSON property `fixedPrice`
1007
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFixedPrice]
1008
+ attr_accessor :fixed_price
1009
+
1010
+ # Encapsulates a discount off the current list price, not anchored to any list
1011
+ # price as of a fixed time.
1012
+ # Corresponds to the JSON property `floatingDiscount`
1013
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount]
1014
+ attr_accessor :floating_discount
1015
+
1016
+ # Encapsulates a contract feature that the list price (DefaultPrice) will be
1017
+ # used for the price if the current list price drops lower than the custom fixed
1018
+ # price. Available to new contracts after March 21, 2022. Applies to all fixed
1019
+ # price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice,
1020
+ # and MergedPrice.
1021
+ # Corresponds to the JSON property `listPriceAsCeiling`
1022
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling]
1023
+ attr_accessor :list_price_as_ceiling
1024
+
1025
+ # Encapsulates a price after merging from multiple sources. With merged tiers,
1026
+ # each individual tier can be from a different source with different discount
1027
+ # types.
1028
+ # Corresponds to the JSON property `mergedPrice`
1029
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMergedPrice]
1030
+ attr_accessor :merged_price
1031
+
1032
+ # Encapsulates a price migrated from other SKUs.
1033
+ # Corresponds to the JSON property `migratedPrice`
1034
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice]
1035
+ attr_accessor :migrated_price
1036
+
1037
+ # Type of the price reason. It can values such as 'default-price', 'fixed-price',
1038
+ # 'fixed-discount', 'floating-discount', 'migrated-price', 'merged-price', '
1039
+ # list-price-as-ceiling'.
1040
+ # Corresponds to the JSON property `type`
1041
+ # @return [String]
1042
+ attr_accessor :type
1043
+
1044
+ def initialize(**args)
1045
+ update!(**args)
1046
+ end
1047
+
1048
+ # Update properties of this object
1049
+ def update!(**args)
1050
+ @default_price = args[:default_price] if args.key?(:default_price)
1051
+ @fixed_discount = args[:fixed_discount] if args.key?(:fixed_discount)
1052
+ @fixed_price = args[:fixed_price] if args.key?(:fixed_price)
1053
+ @floating_discount = args[:floating_discount] if args.key?(:floating_discount)
1054
+ @list_price_as_ceiling = args[:list_price_as_ceiling] if args.key?(:list_price_as_ceiling)
1055
+ @merged_price = args[:merged_price] if args.key?(:merged_price)
1056
+ @migrated_price = args[:migrated_price] if args.key?(:migrated_price)
1057
+ @type = args[:type] if args.key?(:type)
1058
+ end
1059
+ end
1060
+
1061
+ # Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are
1062
+ # offered by pricing tiers. The price have 1 or more rate pricing tiers.
1063
+ class GoogleCloudBillingBillingaccountpricesV1betaRate
1064
+ include Google::Apis::Core::Hashable
1065
+
1066
+ # Encapsulates the aggregation information such as aggregation level and
1067
+ # interval for a billing account price.
1068
+ # Corresponds to the JSON property `aggregationInfo`
1069
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo]
1070
+ attr_accessor :aggregation_info
1071
+
1072
+ # All tiers associated with the `Rate` price.
1073
+ # Corresponds to the JSON property `tiers`
1074
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaRateTier>]
1075
+ attr_accessor :tiers
1076
+
1077
+ # Encapsulates the unit information for a Rate
1078
+ # Corresponds to the JSON property `unitInfo`
1079
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountpricesV1betaUnitInfo]
1080
+ attr_accessor :unit_info
1081
+
1082
+ def initialize(**args)
1083
+ update!(**args)
1084
+ end
1085
+
1086
+ # Update properties of this object
1087
+ def update!(**args)
1088
+ @aggregation_info = args[:aggregation_info] if args.key?(:aggregation_info)
1089
+ @tiers = args[:tiers] if args.key?(:tiers)
1090
+ @unit_info = args[:unit_info] if args.key?(:unit_info)
1091
+ end
1092
+ end
1093
+
1094
+ # Encapsulates a rate price tier.
1095
+ class GoogleCloudBillingBillingaccountpricesV1betaRateTier
1096
+ include Google::Apis::Core::Hashable
1097
+
1098
+ # Represents an amount of money with its currency type.
1099
+ # Corresponds to the JSON property `contractPrice`
1100
+ # @return [Google::Apis::CloudbillingV1beta::Money]
1101
+ attr_accessor :contract_price
1102
+
1103
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1104
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1105
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1106
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1107
+ # org/3/library/decimal.html
1108
+ # Corresponds to the JSON property `effectiveDiscountPercent`
1109
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1110
+ attr_accessor :effective_discount_percent
1111
+
1112
+ # Represents an amount of money with its currency type.
1113
+ # Corresponds to the JSON property `listPrice`
1114
+ # @return [Google::Apis::CloudbillingV1beta::Money]
1115
+ attr_accessor :list_price
1116
+
1117
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1118
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1119
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1120
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1121
+ # org/3/library/decimal.html
1122
+ # Corresponds to the JSON property `startAmount`
1123
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1124
+ attr_accessor :start_amount
1125
+
1126
+ def initialize(**args)
1127
+ update!(**args)
1128
+ end
1129
+
1130
+ # Update properties of this object
1131
+ def update!(**args)
1132
+ @contract_price = args[:contract_price] if args.key?(:contract_price)
1133
+ @effective_discount_percent = args[:effective_discount_percent] if args.key?(:effective_discount_percent)
1134
+ @list_price = args[:list_price] if args.key?(:list_price)
1135
+ @start_amount = args[:start_amount] if args.key?(:start_amount)
1136
+ end
1137
+ end
1138
+
1139
+ # Encapsulates a type of MigratedPrice where the source SKU floating discount is
1140
+ # applied on the target SKU's default price.
1141
+ class GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice
1142
+ include Google::Apis::Core::Hashable
1143
+
1144
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1145
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1146
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1147
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1148
+ # org/3/library/decimal.html
1149
+ # Corresponds to the JSON property `migratedDiscountPercent`
1150
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1151
+ attr_accessor :migrated_discount_percent
1152
+
1153
+ def initialize(**args)
1154
+ update!(**args)
1155
+ end
1156
+
1157
+ # Update properties of this object
1158
+ def update!(**args)
1159
+ @migrated_discount_percent = args[:migrated_discount_percent] if args.key?(:migrated_discount_percent)
1160
+ end
1161
+ end
1162
+
1163
+ # Encapsulates the unit information for a Rate
1164
+ class GoogleCloudBillingBillingaccountpricesV1betaUnitInfo
1165
+ include Google::Apis::Core::Hashable
1166
+
1167
+ # Shorthand for the unit. Example: GiBy.mo.
1168
+ # Corresponds to the JSON property `unit`
1169
+ # @return [String]
1170
+ attr_accessor :unit
1171
+
1172
+ # Human-readable description of the unit. Example: gibibyte month.
1173
+ # Corresponds to the JSON property `unitDescription`
1174
+ # @return [String]
1175
+ attr_accessor :unit_description
1176
+
1177
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1178
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1179
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1180
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1181
+ # org/3/library/decimal.html
1182
+ # Corresponds to the JSON property `unitQuantity`
1183
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1184
+ attr_accessor :unit_quantity
1185
+
1186
+ def initialize(**args)
1187
+ update!(**args)
1188
+ end
1189
+
1190
+ # Update properties of this object
1191
+ def update!(**args)
1192
+ @unit = args[:unit] if args.key?(:unit)
1193
+ @unit_description = args[:unit_description] if args.key?(:unit_description)
1194
+ @unit_quantity = args[:unit_quantity] if args.key?(:unit_quantity)
1195
+ end
1196
+ end
1197
+
1198
+ # Encapsulates a Google Cloud service visible to a billing account.
1199
+ class GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService
1200
+ include Google::Apis::Core::Hashable
1201
+
1202
+ # Description of the BillingAccountService. Example: "BigQuery", "Compute Engine"
1203
+ # .
1204
+ # Corresponds to the JSON property `displayName`
1205
+ # @return [String]
1206
+ attr_accessor :display_name
1207
+
1208
+ # Resource name for the BillingAccountService. Example: "billingAccounts/012345-
1209
+ # 567890-ABCDEF/services/DA34-426B-A397".
1210
+ # Corresponds to the JSON property `name`
1211
+ # @return [String]
1212
+ attr_accessor :name
1213
+
1214
+ # Identifier for the service. It is the string after the collection identifier "
1215
+ # services/". Example: "DA34-426B-A397".
1216
+ # Corresponds to the JSON property `serviceId`
1217
+ # @return [String]
1218
+ attr_accessor :service_id
1219
+
1220
+ def initialize(**args)
1221
+ update!(**args)
1222
+ end
1223
+
1224
+ # Update properties of this object
1225
+ def update!(**args)
1226
+ @display_name = args[:display_name] if args.key?(:display_name)
1227
+ @name = args[:name] if args.key?(:name)
1228
+ @service_id = args[:service_id] if args.key?(:service_id)
1229
+ end
1230
+ end
1231
+
1232
+ # Response message for ListBillingAccountServices.
1233
+ class GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse
1234
+ include Google::Apis::Core::Hashable
1235
+
1236
+ # The returned billing account services.
1237
+ # Corresponds to the JSON property `billingAccountServices`
1238
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService>]
1239
+ attr_accessor :billing_account_services
1240
+
1241
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1242
+ # the next page. If this field is empty, there are no subsequent pages.
1243
+ # Corresponds to the JSON property `nextPageToken`
1244
+ # @return [String]
1245
+ attr_accessor :next_page_token
1246
+
1247
+ def initialize(**args)
1248
+ update!(**args)
1249
+ end
1250
+
1251
+ # Update properties of this object
1252
+ def update!(**args)
1253
+ @billing_account_services = args[:billing_account_services] if args.key?(:billing_account_services)
1254
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1255
+ end
1256
+ end
1257
+
1258
+ # Encapsulates a stock keeping (SKU) group visible to a billing account. A SKU
1259
+ # group represents a collection of SKUs that are related to each other. For
1260
+ # example, the `AI Platform APIs` SKU group includes SKUs from the Cloud
1261
+ # Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.
1262
+ class GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup
1263
+ include Google::Apis::Core::Hashable
1264
+
1265
+ # Description of the BillingAccountSkuGroup. Example: "A2 VMs (1 Year CUD)".
1266
+ # Corresponds to the JSON property `displayName`
1267
+ # @return [String]
1268
+ attr_accessor :display_name
1269
+
1270
+ # Resource name for the BillingAccountSkuGroup. Example: "billingAccounts/012345-
1271
+ # 567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301".
1272
+ # Corresponds to the JSON property `name`
1273
+ # @return [String]
1274
+ attr_accessor :name
1275
+
1276
+ def initialize(**args)
1277
+ update!(**args)
1278
+ end
1279
+
1280
+ # Update properties of this object
1281
+ def update!(**args)
1282
+ @display_name = args[:display_name] if args.key?(:display_name)
1283
+ @name = args[:name] if args.key?(:name)
1284
+ end
1285
+ end
1286
+
1287
+ # Response message for ListBillingAccountSkuGroups.
1288
+ class GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse
1289
+ include Google::Apis::Core::Hashable
1290
+
1291
+ # The returned publicly listed billing account SKU groups.
1292
+ # Corresponds to the JSON property `billingAccountSkuGroups`
1293
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup>]
1294
+ attr_accessor :billing_account_sku_groups
1295
+
1296
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1297
+ # the next page. If this field is empty, there are no subsequent pages.
1298
+ # Corresponds to the JSON property `nextPageToken`
1299
+ # @return [String]
1300
+ attr_accessor :next_page_token
1301
+
1302
+ def initialize(**args)
1303
+ update!(**args)
1304
+ end
1305
+
1306
+ # Update properties of this object
1307
+ def update!(**args)
1308
+ @billing_account_sku_groups = args[:billing_account_sku_groups] if args.key?(:billing_account_sku_groups)
1309
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1310
+ end
1311
+ end
1312
+
1313
+ # Encapsulates a SKU that is part of a billing account SKU group.
1314
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku
1315
+ include Google::Apis::Core::Hashable
1316
+
1317
+ # BillingAccountService that the BillingAccountSkuGroupSku belongs to.
1318
+ # Corresponds to the JSON property `billingAccountService`
1319
+ # @return [String]
1320
+ attr_accessor :billing_account_service
1321
+
1322
+ # Description of the BillingAccountSkuGroupSku. Example: "A2 Instance Core
1323
+ # running in Hong Kong".
1324
+ # Corresponds to the JSON property `displayName`
1325
+ # @return [String]
1326
+ attr_accessor :display_name
1327
+
1328
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1329
+ # east4` or `European Union`.
1330
+ # Corresponds to the JSON property `geoTaxonomy`
1331
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy]
1332
+ attr_accessor :geo_taxonomy
1333
+
1334
+ # Resource name for the BillingAccountSkuGroupSku. Example: "billingAccounts/
1335
+ # 012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-
1336
+ # CD31-42FE".
1337
+ # Corresponds to the JSON property `name`
1338
+ # @return [String]
1339
+ attr_accessor :name
1340
+
1341
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1342
+ # , and others.
1343
+ # Corresponds to the JSON property `productTaxonomy`
1344
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy]
1345
+ attr_accessor :product_taxonomy
1346
+
1347
+ # Unique identifier for the SKU. It is the string after the collection
1348
+ # identifier "skus/" Example: "AA95-CD31-42FE".
1349
+ # Corresponds to the JSON property `skuId`
1350
+ # @return [String]
1351
+ attr_accessor :sku_id
1352
+
1353
+ def initialize(**args)
1354
+ update!(**args)
1355
+ end
1356
+
1357
+ # Update properties of this object
1358
+ def update!(**args)
1359
+ @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
1360
+ @display_name = args[:display_name] if args.key?(:display_name)
1361
+ @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
1362
+ @name = args[:name] if args.key?(:name)
1363
+ @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
1364
+ @sku_id = args[:sku_id] if args.key?(:sku_id)
1365
+ end
1366
+ end
1367
+
1368
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1369
+ # east4` or `European Union`.
1370
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # Encapsulates a global geographic taxonomy.
1374
+ # Corresponds to the JSON property `globalMetadata`
1375
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal]
1376
+ attr_accessor :global_metadata
1377
+
1378
+ # Encapsulates a multi-regional geographic taxonomy.
1379
+ # Corresponds to the JSON property `multiRegionalMetadata`
1380
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional]
1381
+ attr_accessor :multi_regional_metadata
1382
+
1383
+ # Encapsulates a regional geographic taxonomy.
1384
+ # Corresponds to the JSON property `regionalMetadata`
1385
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional]
1386
+ attr_accessor :regional_metadata
1387
+
1388
+ # Type of geographic taxonomy associated with the billing account SKU group SKU.
1389
+ # Corresponds to the JSON property `type`
1390
+ # @return [String]
1391
+ attr_accessor :type
1392
+
1393
+ def initialize(**args)
1394
+ update!(**args)
1395
+ end
1396
+
1397
+ # Update properties of this object
1398
+ def update!(**args)
1399
+ @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
1400
+ @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
1401
+ @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
1402
+ @type = args[:type] if args.key?(:type)
1403
+ end
1404
+ end
1405
+
1406
+ # Encapsulates a global geographic taxonomy.
1407
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ def initialize(**args)
1411
+ update!(**args)
1412
+ end
1413
+
1414
+ # Update properties of this object
1415
+ def update!(**args)
1416
+ end
1417
+ end
1418
+
1419
+ # Encapsulates a multi-regional geographic taxonomy.
1420
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional
1421
+ include Google::Apis::Core::Hashable
1422
+
1423
+ # Google Cloud regions associated with the multi-regional geographic taxonomy.
1424
+ # Corresponds to the JSON property `regions`
1425
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion>]
1426
+ attr_accessor :regions
1427
+
1428
+ def initialize(**args)
1429
+ update!(**args)
1430
+ end
1431
+
1432
+ # Update properties of this object
1433
+ def update!(**args)
1434
+ @regions = args[:regions] if args.key?(:regions)
1435
+ end
1436
+ end
1437
+
1438
+ # Encapsulates a Google Cloud region.
1439
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion
1440
+ include Google::Apis::Core::Hashable
1441
+
1442
+ # Description of a Google Cloud region. Example: "us-west2".
1443
+ # Corresponds to the JSON property `region`
1444
+ # @return [String]
1445
+ attr_accessor :region
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @region = args[:region] if args.key?(:region)
1454
+ end
1455
+ end
1456
+
1457
+ # Encapsulates a regional geographic taxonomy.
1458
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional
1459
+ include Google::Apis::Core::Hashable
1460
+
1461
+ # Encapsulates a Google Cloud region.
1462
+ # Corresponds to the JSON property `region`
1463
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion]
1464
+ attr_accessor :region
1465
+
1466
+ def initialize(**args)
1467
+ update!(**args)
1468
+ end
1469
+
1470
+ # Update properties of this object
1471
+ def update!(**args)
1472
+ @region = args[:region] if args.key?(:region)
1473
+ end
1474
+ end
1475
+
1476
+ # Response message for ListBillingAccountSkuGroupSkus.
1477
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse
1478
+ include Google::Apis::Core::Hashable
1479
+
1480
+ # The returned billing account SKU group SKUs.
1481
+ # Corresponds to the JSON property `billingAccountSkuGroupSkus`
1482
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku>]
1483
+ attr_accessor :billing_account_sku_group_skus
1484
+
1485
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1486
+ # the next page. If this field is empty, there are no subsequent pages.
1487
+ # Corresponds to the JSON property `nextPageToken`
1488
+ # @return [String]
1489
+ attr_accessor :next_page_token
1490
+
1491
+ def initialize(**args)
1492
+ update!(**args)
1493
+ end
1494
+
1495
+ # Update properties of this object
1496
+ def update!(**args)
1497
+ @billing_account_sku_group_skus = args[:billing_account_sku_group_skus] if args.key?(:billing_account_sku_group_skus)
1498
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1499
+ end
1500
+ end
1501
+
1502
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1503
+ # , and others.
1504
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy
1505
+ include Google::Apis::Core::Hashable
1506
+
1507
+ # All product categories that the billing account SKU group SKU belong to.
1508
+ # Corresponds to the JSON property `taxonomyCategories`
1509
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory>]
1510
+ attr_accessor :taxonomy_categories
1511
+
1512
+ def initialize(**args)
1513
+ update!(**args)
1514
+ end
1515
+
1516
+ # Update properties of this object
1517
+ def update!(**args)
1518
+ @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
1519
+ end
1520
+ end
1521
+
1522
+ # Encapsulates a product category.
1523
+ class GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory
1524
+ include Google::Apis::Core::Hashable
1525
+
1526
+ # Name of the product category.
1527
+ # Corresponds to the JSON property `category`
1528
+ # @return [String]
1529
+ attr_accessor :category
1530
+
1531
+ def initialize(**args)
1532
+ update!(**args)
1533
+ end
1534
+
1535
+ # Update properties of this object
1536
+ def update!(**args)
1537
+ @category = args[:category] if args.key?(:category)
1538
+ end
1539
+ end
1540
+
1541
+ # Encapsulates a stock keeping unit (SKU) visible to a billing account. A SKU
1542
+ # distinctly identifies a resource that you can purchase, such as `Nvidia Tesla
1543
+ # K80 GPU attached to Spot Preemptible VMs running in Warsaw`.
1544
+ class GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku
1545
+ include Google::Apis::Core::Hashable
1546
+
1547
+ # BillingAccountService that the BillingAccountSku belongs to.
1548
+ # Corresponds to the JSON property `billingAccountService`
1549
+ # @return [String]
1550
+ attr_accessor :billing_account_service
1551
+
1552
+ # Description of the BillingAccountSku. Example: "A2 Instance Core running in
1553
+ # Hong Kong".
1554
+ # Corresponds to the JSON property `displayName`
1555
+ # @return [String]
1556
+ attr_accessor :display_name
1557
+
1558
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1559
+ # east4` or `European Union`.
1560
+ # Corresponds to the JSON property `geoTaxonomy`
1561
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy]
1562
+ attr_accessor :geo_taxonomy
1563
+
1564
+ # Resource name for the BillingAccountSku. Example: "billingAccounts/012345-
1565
+ # 567890-ABCDEF/skus/AA95-CD31-42FE".
1566
+ # Corresponds to the JSON property `name`
1567
+ # @return [String]
1568
+ attr_accessor :name
1569
+
1570
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1571
+ # , and others.
1572
+ # Corresponds to the JSON property `productTaxonomy`
1573
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy]
1574
+ attr_accessor :product_taxonomy
1575
+
1576
+ # Unique identifier for the SKU. It is the string after the collection
1577
+ # identifier "skus/" Example: "AA95-CD31-42FE".
1578
+ # Corresponds to the JSON property `skuId`
1579
+ # @return [String]
1580
+ attr_accessor :sku_id
1581
+
1582
+ def initialize(**args)
1583
+ update!(**args)
1584
+ end
1585
+
1586
+ # Update properties of this object
1587
+ def update!(**args)
1588
+ @billing_account_service = args[:billing_account_service] if args.key?(:billing_account_service)
1589
+ @display_name = args[:display_name] if args.key?(:display_name)
1590
+ @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
1591
+ @name = args[:name] if args.key?(:name)
1592
+ @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
1593
+ @sku_id = args[:sku_id] if args.key?(:sku_id)
1594
+ end
1595
+ end
1596
+
1597
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1598
+ # east4` or `European Union`.
1599
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy
1600
+ include Google::Apis::Core::Hashable
1601
+
1602
+ # Encapsulates a global geographic taxonomy.
1603
+ # Corresponds to the JSON property `globalMetadata`
1604
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal]
1605
+ attr_accessor :global_metadata
1606
+
1607
+ # Encapsulates a multi-regional geographic taxonomy.
1608
+ # Corresponds to the JSON property `multiRegionalMetadata`
1609
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional]
1610
+ attr_accessor :multi_regional_metadata
1611
+
1612
+ # Encapsulates a regional geographic taxonomy.
1613
+ # Corresponds to the JSON property `regionalMetadata`
1614
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional]
1615
+ attr_accessor :regional_metadata
1616
+
1617
+ # Type of geographic taxonomy associated with the billing account SKU.
1618
+ # Corresponds to the JSON property `type`
1619
+ # @return [String]
1620
+ attr_accessor :type
1621
+
1622
+ def initialize(**args)
1623
+ update!(**args)
1624
+ end
1625
+
1626
+ # Update properties of this object
1627
+ def update!(**args)
1628
+ @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
1629
+ @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
1630
+ @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
1631
+ @type = args[:type] if args.key?(:type)
1632
+ end
1633
+ end
1634
+
1635
+ # Encapsulates a global geographic taxonomy.
1636
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal
1637
+ include Google::Apis::Core::Hashable
1638
+
1639
+ def initialize(**args)
1640
+ update!(**args)
1641
+ end
1642
+
1643
+ # Update properties of this object
1644
+ def update!(**args)
1645
+ end
1646
+ end
1647
+
1648
+ # Encapsulates a multi-regional geographic taxonomy.
1649
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional
1650
+ include Google::Apis::Core::Hashable
1651
+
1652
+ # Google Cloud regions associated with the multi-regional geographic taxonomy.
1653
+ # Corresponds to the JSON property `regions`
1654
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion>]
1655
+ attr_accessor :regions
1656
+
1657
+ def initialize(**args)
1658
+ update!(**args)
1659
+ end
1660
+
1661
+ # Update properties of this object
1662
+ def update!(**args)
1663
+ @regions = args[:regions] if args.key?(:regions)
1664
+ end
1665
+ end
1666
+
1667
+ # Encapsulates a Google Cloud region.
1668
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion
1669
+ include Google::Apis::Core::Hashable
1670
+
1671
+ # Description of a Google Cloud region. Example: "us-west2".
1672
+ # Corresponds to the JSON property `region`
1673
+ # @return [String]
1674
+ attr_accessor :region
1675
+
1676
+ def initialize(**args)
1677
+ update!(**args)
1678
+ end
1679
+
1680
+ # Update properties of this object
1681
+ def update!(**args)
1682
+ @region = args[:region] if args.key?(:region)
1683
+ end
1684
+ end
1685
+
1686
+ # Encapsulates a regional geographic taxonomy.
1687
+ class GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional
1688
+ include Google::Apis::Core::Hashable
1689
+
1690
+ # Encapsulates a Google Cloud region.
1691
+ # Corresponds to the JSON property `region`
1692
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion]
1693
+ attr_accessor :region
1694
+
1695
+ def initialize(**args)
1696
+ update!(**args)
1697
+ end
1698
+
1699
+ # Update properties of this object
1700
+ def update!(**args)
1701
+ @region = args[:region] if args.key?(:region)
1702
+ end
1703
+ end
1704
+
1705
+ # Response message for ListBillingAccountSkus.
1706
+ class GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse
1707
+ include Google::Apis::Core::Hashable
1708
+
1709
+ # The returned billing account SKUs.
1710
+ # Corresponds to the JSON property `billingAccountSkus`
1711
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku>]
1712
+ attr_accessor :billing_account_skus
1713
+
1714
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1715
+ # the next page. If this field is empty, there are no subsequent pages.
1716
+ # Corresponds to the JSON property `nextPageToken`
1717
+ # @return [String]
1718
+ attr_accessor :next_page_token
1719
+
1720
+ def initialize(**args)
1721
+ update!(**args)
1722
+ end
1723
+
1724
+ # Update properties of this object
1725
+ def update!(**args)
1726
+ @billing_account_skus = args[:billing_account_skus] if args.key?(:billing_account_skus)
1727
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1728
+ end
1729
+ end
1730
+
1731
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
1732
+ # , and others.
1733
+ class GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy
1734
+ include Google::Apis::Core::Hashable
1735
+
1736
+ # All product categories that the billing account SKU belong to.
1737
+ # Corresponds to the JSON property `taxonomyCategories`
1738
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory>]
1739
+ attr_accessor :taxonomy_categories
1740
+
1741
+ def initialize(**args)
1742
+ update!(**args)
1743
+ end
1744
+
1745
+ # Update properties of this object
1746
+ def update!(**args)
1747
+ @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
1748
+ end
1749
+ end
1750
+
1751
+ # Encapsulates a product category.
1752
+ class GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory
1753
+ include Google::Apis::Core::Hashable
1754
+
1755
+ # Name of the product category.
1756
+ # Corresponds to the JSON property `category`
1757
+ # @return [String]
1758
+ attr_accessor :category
1759
+
1760
+ def initialize(**args)
1761
+ update!(**args)
1762
+ end
1763
+
1764
+ # Update properties of this object
1765
+ def update!(**args)
1766
+ @category = args[:category] if args.key?(:category)
1767
+ end
1768
+ end
1769
+
1770
+ # Encapsulates the aggregation information such as aggregation level and
1771
+ # interval for a price.
1772
+ class GoogleCloudBillingPricesV1betaAggregationInfo
1773
+ include Google::Apis::Core::Hashable
1774
+
1775
+ # Interval at which usage is aggregated to compute cost. Example: "MONTHLY"
1776
+ # interval indicates that usage is aggregated every month.
1777
+ # Corresponds to the JSON property `interval`
1778
+ # @return [String]
1779
+ attr_accessor :interval
1780
+
1781
+ # Level at which usage is aggregated to compute cost. Example: "ACCOUNT" level
1782
+ # indicates that usage is aggregated across all projects in a single account.
1783
+ # Corresponds to the JSON property `level`
1784
+ # @return [String]
1785
+ attr_accessor :level
1786
+
1787
+ def initialize(**args)
1788
+ update!(**args)
1789
+ end
1790
+
1791
+ # Update properties of this object
1792
+ def update!(**args)
1793
+ @interval = args[:interval] if args.key?(:interval)
1794
+ @level = args[:level] if args.key?(:level)
1795
+ end
1796
+ end
1797
+
1798
+ # Encapsulates the latest price for the given SKU.
1799
+ class GoogleCloudBillingPricesV1betaPrice
1800
+ include Google::Apis::Core::Hashable
1801
+
1802
+ # ISO-4217 currency code for the price.
1803
+ # Corresponds to the JSON property `currencyCode`
1804
+ # @return [String]
1805
+ attr_accessor :currency_code
1806
+
1807
+ # Resource name for the latest price.
1808
+ # Corresponds to the JSON property `name`
1809
+ # @return [String]
1810
+ attr_accessor :name
1811
+
1812
+ # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1813
+ # tiers. The price have 1 or more rate pricing tiers.
1814
+ # Corresponds to the JSON property `rate`
1815
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRate]
1816
+ attr_accessor :rate
1817
+
1818
+ # Type of the price. It can have values: ["unspecified", "rate"].
1819
+ # Corresponds to the JSON property `valueType`
1820
+ # @return [String]
1821
+ attr_accessor :value_type
1822
+
1823
+ def initialize(**args)
1824
+ update!(**args)
1825
+ end
1826
+
1827
+ # Update properties of this object
1828
+ def update!(**args)
1829
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1830
+ @name = args[:name] if args.key?(:name)
1831
+ @rate = args[:rate] if args.key?(:rate)
1832
+ @value_type = args[:value_type] if args.key?(:value_type)
1833
+ end
1834
+ end
1835
+
1836
+ # Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing
1837
+ # tiers. The price have 1 or more rate pricing tiers.
1838
+ class GoogleCloudBillingPricesV1betaRate
1839
+ include Google::Apis::Core::Hashable
1840
+
1841
+ # Encapsulates the aggregation information such as aggregation level and
1842
+ # interval for a price.
1843
+ # Corresponds to the JSON property `aggregationInfo`
1844
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaAggregationInfo]
1845
+ attr_accessor :aggregation_info
1846
+
1847
+ # All tiers associated with the `Rate` price.
1848
+ # Corresponds to the JSON property `tiers`
1849
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaRateTier>]
1850
+ attr_accessor :tiers
1851
+
1852
+ # Encapsulates the unit information for a Rate
1853
+ # Corresponds to the JSON property `unitInfo`
1854
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingPricesV1betaUnitInfo]
1855
+ attr_accessor :unit_info
1856
+
1857
+ def initialize(**args)
1858
+ update!(**args)
1859
+ end
1860
+
1861
+ # Update properties of this object
1862
+ def update!(**args)
1863
+ @aggregation_info = args[:aggregation_info] if args.key?(:aggregation_info)
1864
+ @tiers = args[:tiers] if args.key?(:tiers)
1865
+ @unit_info = args[:unit_info] if args.key?(:unit_info)
1866
+ end
1867
+ end
1868
+
1869
+ # Encapsulates a rate price tier.
1870
+ class GoogleCloudBillingPricesV1betaRateTier
1871
+ include Google::Apis::Core::Hashable
1872
+
1873
+ # Represents an amount of money with its currency type.
1874
+ # Corresponds to the JSON property `listPrice`
1875
+ # @return [Google::Apis::CloudbillingV1beta::Money]
1876
+ attr_accessor :list_price
1877
+
1878
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1879
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1880
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1881
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1882
+ # org/3/library/decimal.html
1883
+ # Corresponds to the JSON property `startAmount`
1884
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1885
+ attr_accessor :start_amount
1886
+
1887
+ def initialize(**args)
1888
+ update!(**args)
1889
+ end
1890
+
1891
+ # Update properties of this object
1892
+ def update!(**args)
1893
+ @list_price = args[:list_price] if args.key?(:list_price)
1894
+ @start_amount = args[:start_amount] if args.key?(:start_amount)
1895
+ end
1896
+ end
1897
+
1898
+ # Encapsulates the unit information for a Rate
1899
+ class GoogleCloudBillingPricesV1betaUnitInfo
1900
+ include Google::Apis::Core::Hashable
1901
+
1902
+ # Shorthand for the unit. Example: GiBy.mo.
1903
+ # Corresponds to the JSON property `unit`
1904
+ # @return [String]
1905
+ attr_accessor :unit
1906
+
1907
+ # Human-readable description of the unit. Example: gibibyte month.
1908
+ # Corresponds to the JSON property `unitDescription`
1909
+ # @return [String]
1910
+ attr_accessor :unit_description
1911
+
1912
+ # A representation of a decimal value, such as 2.5. Clients may convert values
1913
+ # into language-native decimal formats, such as Java's BigDecimal or Python's
1914
+ # decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/
1915
+ # api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.
1916
+ # org/3/library/decimal.html
1917
+ # Corresponds to the JSON property `unitQuantity`
1918
+ # @return [Google::Apis::CloudbillingV1beta::Decimal]
1919
+ attr_accessor :unit_quantity
1920
+
1921
+ def initialize(**args)
1922
+ update!(**args)
1923
+ end
1924
+
1925
+ # Update properties of this object
1926
+ def update!(**args)
1927
+ @unit = args[:unit] if args.key?(:unit)
1928
+ @unit_description = args[:unit_description] if args.key?(:unit_description)
1929
+ @unit_quantity = args[:unit_quantity] if args.key?(:unit_quantity)
1930
+ end
1931
+ end
1932
+
1933
+ # Response message for ListSkuGroups.
1934
+ class GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse
1935
+ include Google::Apis::Core::Hashable
1936
+
1937
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
1938
+ # the next page. If this field is empty, there are no subsequent pages.
1939
+ # Corresponds to the JSON property `nextPageToken`
1940
+ # @return [String]
1941
+ attr_accessor :next_page_token
1942
+
1943
+ # The returned publicly listed SKU groups.
1944
+ # Corresponds to the JSON property `skuGroups`
1945
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupsV1betaSkuGroup>]
1946
+ attr_accessor :sku_groups
1947
+
1948
+ def initialize(**args)
1949
+ update!(**args)
1950
+ end
1951
+
1952
+ # Update properties of this object
1953
+ def update!(**args)
1954
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1955
+ @sku_groups = args[:sku_groups] if args.key?(:sku_groups)
1956
+ end
1957
+ end
1958
+
1959
+ # Encapsulates a publicly listed stock keeping unit (SKU) group. A SKU group
1960
+ # represents a collection of SKUs that are related to each other. For example,
1961
+ # the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API,
1962
+ # the Cloud Text-to-Speech API, and additional related APIs.
1963
+ class GoogleCloudBillingSkugroupsV1betaSkuGroup
1964
+ include Google::Apis::Core::Hashable
1965
+
1966
+ # Description of the SKU group. Example: "A2 VMs (1 Year CUD)".
1967
+ # Corresponds to the JSON property `displayName`
1968
+ # @return [String]
1969
+ attr_accessor :display_name
1970
+
1971
+ # Resource name for the SKU group. Example: "skuGroups/0e6403d1-4694-44d2-a696-
1972
+ # 7a78b1a69301".
1973
+ # Corresponds to the JSON property `name`
1974
+ # @return [String]
1975
+ attr_accessor :name
1976
+
1977
+ def initialize(**args)
1978
+ update!(**args)
1979
+ end
1980
+
1981
+ # Update properties of this object
1982
+ def update!(**args)
1983
+ @display_name = args[:display_name] if args.key?(:display_name)
1984
+ @name = args[:name] if args.key?(:name)
1985
+ end
1986
+ end
1987
+
1988
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
1989
+ # east4` or `European Union`.
1990
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy
1991
+ include Google::Apis::Core::Hashable
1992
+
1993
+ # Encapsulates a global geographic taxonomy.
1994
+ # Corresponds to the JSON property `globalMetadata`
1995
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal]
1996
+ attr_accessor :global_metadata
1997
+
1998
+ # Encapsulates a multi-regional geographic taxonomy.
1999
+ # Corresponds to the JSON property `multiRegionalMetadata`
2000
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional]
2001
+ attr_accessor :multi_regional_metadata
2002
+
2003
+ # Encapsulates a regional geographic taxonomy.
2004
+ # Corresponds to the JSON property `regionalMetadata`
2005
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional]
2006
+ attr_accessor :regional_metadata
2007
+
2008
+ # Type of geographic taxonomy associated with the SKU group SKU.
2009
+ # Corresponds to the JSON property `type`
2010
+ # @return [String]
2011
+ attr_accessor :type
2012
+
2013
+ def initialize(**args)
2014
+ update!(**args)
2015
+ end
2016
+
2017
+ # Update properties of this object
2018
+ def update!(**args)
2019
+ @global_metadata = args[:global_metadata] if args.key?(:global_metadata)
2020
+ @multi_regional_metadata = args[:multi_regional_metadata] if args.key?(:multi_regional_metadata)
2021
+ @regional_metadata = args[:regional_metadata] if args.key?(:regional_metadata)
2022
+ @type = args[:type] if args.key?(:type)
2023
+ end
2024
+ end
2025
+
2026
+ # Encapsulates a global geographic taxonomy.
2027
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal
2028
+ include Google::Apis::Core::Hashable
2029
+
2030
+ def initialize(**args)
2031
+ update!(**args)
2032
+ end
2033
+
2034
+ # Update properties of this object
2035
+ def update!(**args)
2036
+ end
2037
+ end
2038
+
2039
+ # Encapsulates a multi-regional geographic taxonomy.
2040
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional
2041
+ include Google::Apis::Core::Hashable
2042
+
2043
+ # Google Cloud regions associated with the multi-regional geographic taxonomy.
2044
+ # Corresponds to the JSON property `regions`
2045
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion>]
2046
+ attr_accessor :regions
2047
+
2048
+ def initialize(**args)
2049
+ update!(**args)
2050
+ end
2051
+
2052
+ # Update properties of this object
2053
+ def update!(**args)
2054
+ @regions = args[:regions] if args.key?(:regions)
2055
+ end
2056
+ end
2057
+
2058
+ # Encapsulates a Google Cloud region.
2059
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion
2060
+ include Google::Apis::Core::Hashable
2061
+
2062
+ # Description of a Google Cloud region. Example: "us-west2".
2063
+ # Corresponds to the JSON property `region`
2064
+ # @return [String]
2065
+ attr_accessor :region
2066
+
2067
+ def initialize(**args)
2068
+ update!(**args)
2069
+ end
2070
+
2071
+ # Update properties of this object
2072
+ def update!(**args)
2073
+ @region = args[:region] if args.key?(:region)
2074
+ end
2075
+ end
2076
+
2077
+ # Encapsulates a regional geographic taxonomy.
2078
+ class GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional
2079
+ include Google::Apis::Core::Hashable
2080
+
2081
+ # Encapsulates a Google Cloud region.
2082
+ # Corresponds to the JSON property `region`
2083
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion]
2084
+ attr_accessor :region
2085
+
2086
+ def initialize(**args)
2087
+ update!(**args)
2088
+ end
2089
+
2090
+ # Update properties of this object
2091
+ def update!(**args)
2092
+ @region = args[:region] if args.key?(:region)
2093
+ end
2094
+ end
2095
+
2096
+ # Response message for ListSkuGroupSkus.
2097
+ class GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse
2098
+ include Google::Apis::Core::Hashable
2099
+
2100
+ # Token that can be sent as `page_token` in the subsequent request to retrieve
2101
+ # the next page. If this field is empty, there are no subsequent pages.
2102
+ # Corresponds to the JSON property `nextPageToken`
2103
+ # @return [String]
2104
+ attr_accessor :next_page_token
2105
+
2106
+ # The returned SKU group SKUs.
2107
+ # Corresponds to the JSON property `skuGroupSkus`
2108
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaSkuGroupSku>]
2109
+ attr_accessor :sku_group_skus
2110
+
2111
+ def initialize(**args)
2112
+ update!(**args)
2113
+ end
2114
+
2115
+ # Update properties of this object
2116
+ def update!(**args)
2117
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2118
+ @sku_group_skus = args[:sku_group_skus] if args.key?(:sku_group_skus)
2119
+ end
2120
+ end
2121
+
2122
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
2123
+ # , and others.
2124
+ class GoogleCloudBillingSkugroupskusV1betaProductTaxonomy
2125
+ include Google::Apis::Core::Hashable
2126
+
2127
+ # All product categories that the SKU group SKU belongs to.
2128
+ # Corresponds to the JSON property `taxonomyCategories`
2129
+ # @return [Array<Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory>]
2130
+ attr_accessor :taxonomy_categories
2131
+
2132
+ def initialize(**args)
2133
+ update!(**args)
2134
+ end
2135
+
2136
+ # Update properties of this object
2137
+ def update!(**args)
2138
+ @taxonomy_categories = args[:taxonomy_categories] if args.key?(:taxonomy_categories)
2139
+ end
2140
+ end
2141
+
2142
+ # Encapsulates a publicly listed stock keeping unit (SKU) that is part of a
2143
+ # publicly listed SKU group. A SKU group represents a collection of SKUs that
2144
+ # are related to each other. For example, the `AI Platform APIs` SKU group
2145
+ # includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and
2146
+ # additional related APIs.
2147
+ class GoogleCloudBillingSkugroupskusV1betaSkuGroupSku
2148
+ include Google::Apis::Core::Hashable
2149
+
2150
+ # Description of the SkuGroupSku. Example: "A2 Instance Core running in Hong
2151
+ # Kong".
2152
+ # Corresponds to the JSON property `displayName`
2153
+ # @return [String]
2154
+ attr_accessor :display_name
2155
+
2156
+ # Encapsulates geographic metadata, such as regions and multi-regions like `us-
2157
+ # east4` or `European Union`.
2158
+ # Corresponds to the JSON property `geoTaxonomy`
2159
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy]
2160
+ attr_accessor :geo_taxonomy
2161
+
2162
+ # Resource name for the SkuGroupSku. Example: "skuGroups/0e6403d1-4694-44d2-a696-
2163
+ # 7a78b1a69301/skus/AA95-CD31-42FE".
2164
+ # Corresponds to the JSON property `name`
2165
+ # @return [String]
2166
+ attr_accessor :name
2167
+
2168
+ # Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`
2169
+ # , and others.
2170
+ # Corresponds to the JSON property `productTaxonomy`
2171
+ # @return [Google::Apis::CloudbillingV1beta::GoogleCloudBillingSkugroupskusV1betaProductTaxonomy]
2172
+ attr_accessor :product_taxonomy
2173
+
2174
+ # Service that the SkuGroupSku belongs to.
2175
+ # Corresponds to the JSON property `service`
2176
+ # @return [String]
2177
+ attr_accessor :service
2178
+
2179
+ # Unique identifier for the SKU. It is the string after the collection
2180
+ # identifier "skus/" Example: "AA95-CD31-42FE".
2181
+ # Corresponds to the JSON property `skuId`
2182
+ # @return [String]
2183
+ attr_accessor :sku_id
2184
+
2185
+ def initialize(**args)
2186
+ update!(**args)
2187
+ end
2188
+
2189
+ # Update properties of this object
2190
+ def update!(**args)
2191
+ @display_name = args[:display_name] if args.key?(:display_name)
2192
+ @geo_taxonomy = args[:geo_taxonomy] if args.key?(:geo_taxonomy)
2193
+ @name = args[:name] if args.key?(:name)
2194
+ @product_taxonomy = args[:product_taxonomy] if args.key?(:product_taxonomy)
2195
+ @service = args[:service] if args.key?(:service)
2196
+ @sku_id = args[:sku_id] if args.key?(:sku_id)
2197
+ end
2198
+ end
2199
+
2200
+ # Encapsulates a product category.
2201
+ class GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory
2202
+ include Google::Apis::Core::Hashable
2203
+
2204
+ # Name of the product category.
2205
+ # Corresponds to the JSON property `category`
2206
+ # @return [String]
2207
+ attr_accessor :category
2208
+
2209
+ def initialize(**args)
2210
+ update!(**args)
2211
+ end
2212
+
2213
+ # Update properties of this object
2214
+ def update!(**args)
2215
+ @category = args[:category] if args.key?(:category)
2216
+ end
2217
+ end
2218
+
686
2219
  # Specification of a set of guest accelerators attached to a machine.
687
2220
  class GuestAccelerator
688
2221
  include Google::Apis::Core::Hashable