1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/billing/v1/cloud_catalog.proto
3
4package billing
5
6import (
7	context "context"
8	fmt "fmt"
9	math "math"
10
11	proto "github.com/golang/protobuf/proto"
12	timestamp "github.com/golang/protobuf/ptypes/timestamp"
13	_ "google.golang.org/genproto/googleapis/api/annotations"
14	money "google.golang.org/genproto/googleapis/type/money"
15	grpc "google.golang.org/grpc"
16	codes "google.golang.org/grpc/codes"
17	status "google.golang.org/grpc/status"
18)
19
20// Reference imports to suppress errors if they are not otherwise used.
21var _ = proto.Marshal
22var _ = fmt.Errorf
23var _ = math.Inf
24
25// This is a compile-time assertion to ensure that this generated file
26// is compatible with the proto package it is being compiled against.
27// A compilation error at this line likely means your copy of the
28// proto package needs to be updated.
29const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
30
31// The level at which usage is aggregated to compute cost.
32// Example: "ACCOUNT" aggregation level indicates that usage for tiered
33// pricing is aggregated across all projects in a single account.
34type AggregationInfo_AggregationLevel int32
35
36const (
37	AggregationInfo_AGGREGATION_LEVEL_UNSPECIFIED AggregationInfo_AggregationLevel = 0
38	AggregationInfo_ACCOUNT                       AggregationInfo_AggregationLevel = 1
39	AggregationInfo_PROJECT                       AggregationInfo_AggregationLevel = 2
40)
41
42var AggregationInfo_AggregationLevel_name = map[int32]string{
43	0: "AGGREGATION_LEVEL_UNSPECIFIED",
44	1: "ACCOUNT",
45	2: "PROJECT",
46}
47
48var AggregationInfo_AggregationLevel_value = map[string]int32{
49	"AGGREGATION_LEVEL_UNSPECIFIED": 0,
50	"ACCOUNT":                       1,
51	"PROJECT":                       2,
52}
53
54func (x AggregationInfo_AggregationLevel) String() string {
55	return proto.EnumName(AggregationInfo_AggregationLevel_name, int32(x))
56}
57
58func (AggregationInfo_AggregationLevel) EnumDescriptor() ([]byte, []int) {
59	return fileDescriptor_4ca652323baa1561, []int{5, 0}
60}
61
62// The interval at which usage is aggregated to compute cost.
63// Example: "MONTHLY" aggregation interval indicates that usage for tiered
64// pricing is aggregated every month.
65type AggregationInfo_AggregationInterval int32
66
67const (
68	AggregationInfo_AGGREGATION_INTERVAL_UNSPECIFIED AggregationInfo_AggregationInterval = 0
69	AggregationInfo_DAILY                            AggregationInfo_AggregationInterval = 1
70	AggregationInfo_MONTHLY                          AggregationInfo_AggregationInterval = 2
71)
72
73var AggregationInfo_AggregationInterval_name = map[int32]string{
74	0: "AGGREGATION_INTERVAL_UNSPECIFIED",
75	1: "DAILY",
76	2: "MONTHLY",
77}
78
79var AggregationInfo_AggregationInterval_value = map[string]int32{
80	"AGGREGATION_INTERVAL_UNSPECIFIED": 0,
81	"DAILY":                            1,
82	"MONTHLY":                          2,
83}
84
85func (x AggregationInfo_AggregationInterval) String() string {
86	return proto.EnumName(AggregationInfo_AggregationInterval_name, int32(x))
87}
88
89func (AggregationInfo_AggregationInterval) EnumDescriptor() ([]byte, []int) {
90	return fileDescriptor_4ca652323baa1561, []int{5, 1}
91}
92
93// Encapsulates a single service in Google Cloud Platform.
94type Service struct {
95	// The resource name for the service.
96	// Example: "services/DA34-426B-A397"
97	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
98	// The identifier for the service.
99	// Example: "DA34-426B-A397"
100	ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
101	// A human readable display name for this service.
102	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
103	// The business under which the service is offered.
104	// Ex. "businessEntities/GCP", "businessEntities/Maps"
105	BusinessEntityName   string   `protobuf:"bytes,4,opt,name=business_entity_name,json=businessEntityName,proto3" json:"business_entity_name,omitempty"`
106	XXX_NoUnkeyedLiteral struct{} `json:"-"`
107	XXX_unrecognized     []byte   `json:"-"`
108	XXX_sizecache        int32    `json:"-"`
109}
110
111func (m *Service) Reset()         { *m = Service{} }
112func (m *Service) String() string { return proto.CompactTextString(m) }
113func (*Service) ProtoMessage()    {}
114func (*Service) Descriptor() ([]byte, []int) {
115	return fileDescriptor_4ca652323baa1561, []int{0}
116}
117
118func (m *Service) XXX_Unmarshal(b []byte) error {
119	return xxx_messageInfo_Service.Unmarshal(m, b)
120}
121func (m *Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
122	return xxx_messageInfo_Service.Marshal(b, m, deterministic)
123}
124func (m *Service) XXX_Merge(src proto.Message) {
125	xxx_messageInfo_Service.Merge(m, src)
126}
127func (m *Service) XXX_Size() int {
128	return xxx_messageInfo_Service.Size(m)
129}
130func (m *Service) XXX_DiscardUnknown() {
131	xxx_messageInfo_Service.DiscardUnknown(m)
132}
133
134var xxx_messageInfo_Service proto.InternalMessageInfo
135
136func (m *Service) GetName() string {
137	if m != nil {
138		return m.Name
139	}
140	return ""
141}
142
143func (m *Service) GetServiceId() string {
144	if m != nil {
145		return m.ServiceId
146	}
147	return ""
148}
149
150func (m *Service) GetDisplayName() string {
151	if m != nil {
152		return m.DisplayName
153	}
154	return ""
155}
156
157func (m *Service) GetBusinessEntityName() string {
158	if m != nil {
159		return m.BusinessEntityName
160	}
161	return ""
162}
163
164// Encapsulates a single SKU in Google Cloud Platform
165type Sku struct {
166	// The resource name for the SKU.
167	// Example: "services/DA34-426B-A397/skus/AA95-CD31-42FE"
168	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
169	// The identifier for the SKU.
170	// Example: "AA95-CD31-42FE"
171	SkuId string `protobuf:"bytes,2,opt,name=sku_id,json=skuId,proto3" json:"sku_id,omitempty"`
172	// A human readable description of the SKU, has a maximum length of 256
173	// characters.
174	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
175	// The category hierarchy of this SKU, purely for organizational purpose.
176	Category *Category `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
177	// List of service regions this SKU is offered at.
178	// Example: "asia-east1"
179	// Service regions can be found at https://cloud.google.com/about/locations/
180	ServiceRegions []string `protobuf:"bytes,5,rep,name=service_regions,json=serviceRegions,proto3" json:"service_regions,omitempty"`
181	// A timeline of pricing info for this SKU in chronological order.
182	PricingInfo []*PricingInfo `protobuf:"bytes,6,rep,name=pricing_info,json=pricingInfo,proto3" json:"pricing_info,omitempty"`
183	// Identifies the service provider.
184	// This is 'Google' for first party services in Google Cloud Platform.
185	ServiceProviderName  string   `protobuf:"bytes,7,opt,name=service_provider_name,json=serviceProviderName,proto3" json:"service_provider_name,omitempty"`
186	XXX_NoUnkeyedLiteral struct{} `json:"-"`
187	XXX_unrecognized     []byte   `json:"-"`
188	XXX_sizecache        int32    `json:"-"`
189}
190
191func (m *Sku) Reset()         { *m = Sku{} }
192func (m *Sku) String() string { return proto.CompactTextString(m) }
193func (*Sku) ProtoMessage()    {}
194func (*Sku) Descriptor() ([]byte, []int) {
195	return fileDescriptor_4ca652323baa1561, []int{1}
196}
197
198func (m *Sku) XXX_Unmarshal(b []byte) error {
199	return xxx_messageInfo_Sku.Unmarshal(m, b)
200}
201func (m *Sku) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
202	return xxx_messageInfo_Sku.Marshal(b, m, deterministic)
203}
204func (m *Sku) XXX_Merge(src proto.Message) {
205	xxx_messageInfo_Sku.Merge(m, src)
206}
207func (m *Sku) XXX_Size() int {
208	return xxx_messageInfo_Sku.Size(m)
209}
210func (m *Sku) XXX_DiscardUnknown() {
211	xxx_messageInfo_Sku.DiscardUnknown(m)
212}
213
214var xxx_messageInfo_Sku proto.InternalMessageInfo
215
216func (m *Sku) GetName() string {
217	if m != nil {
218		return m.Name
219	}
220	return ""
221}
222
223func (m *Sku) GetSkuId() string {
224	if m != nil {
225		return m.SkuId
226	}
227	return ""
228}
229
230func (m *Sku) GetDescription() string {
231	if m != nil {
232		return m.Description
233	}
234	return ""
235}
236
237func (m *Sku) GetCategory() *Category {
238	if m != nil {
239		return m.Category
240	}
241	return nil
242}
243
244func (m *Sku) GetServiceRegions() []string {
245	if m != nil {
246		return m.ServiceRegions
247	}
248	return nil
249}
250
251func (m *Sku) GetPricingInfo() []*PricingInfo {
252	if m != nil {
253		return m.PricingInfo
254	}
255	return nil
256}
257
258func (m *Sku) GetServiceProviderName() string {
259	if m != nil {
260		return m.ServiceProviderName
261	}
262	return ""
263}
264
265// Represents the category hierarchy of a SKU.
266type Category struct {
267	// The display name of the service this SKU belongs to.
268	ServiceDisplayName string `protobuf:"bytes,1,opt,name=service_display_name,json=serviceDisplayName,proto3" json:"service_display_name,omitempty"`
269	// The type of product the SKU refers to.
270	// Example: "Compute", "Storage", "Network", "ApplicationServices" etc.
271	ResourceFamily string `protobuf:"bytes,2,opt,name=resource_family,json=resourceFamily,proto3" json:"resource_family,omitempty"`
272	// A group classification for related SKUs.
273	// Example: "RAM", "GPU", "Prediction", "Ops", "GoogleEgress" etc.
274	ResourceGroup string `protobuf:"bytes,3,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"`
275	// Represents how the SKU is consumed.
276	// Example: "OnDemand", "Preemptible", "Commit1Mo", "Commit1Yr" etc.
277	UsageType            string   `protobuf:"bytes,4,opt,name=usage_type,json=usageType,proto3" json:"usage_type,omitempty"`
278	XXX_NoUnkeyedLiteral struct{} `json:"-"`
279	XXX_unrecognized     []byte   `json:"-"`
280	XXX_sizecache        int32    `json:"-"`
281}
282
283func (m *Category) Reset()         { *m = Category{} }
284func (m *Category) String() string { return proto.CompactTextString(m) }
285func (*Category) ProtoMessage()    {}
286func (*Category) Descriptor() ([]byte, []int) {
287	return fileDescriptor_4ca652323baa1561, []int{2}
288}
289
290func (m *Category) XXX_Unmarshal(b []byte) error {
291	return xxx_messageInfo_Category.Unmarshal(m, b)
292}
293func (m *Category) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
294	return xxx_messageInfo_Category.Marshal(b, m, deterministic)
295}
296func (m *Category) XXX_Merge(src proto.Message) {
297	xxx_messageInfo_Category.Merge(m, src)
298}
299func (m *Category) XXX_Size() int {
300	return xxx_messageInfo_Category.Size(m)
301}
302func (m *Category) XXX_DiscardUnknown() {
303	xxx_messageInfo_Category.DiscardUnknown(m)
304}
305
306var xxx_messageInfo_Category proto.InternalMessageInfo
307
308func (m *Category) GetServiceDisplayName() string {
309	if m != nil {
310		return m.ServiceDisplayName
311	}
312	return ""
313}
314
315func (m *Category) GetResourceFamily() string {
316	if m != nil {
317		return m.ResourceFamily
318	}
319	return ""
320}
321
322func (m *Category) GetResourceGroup() string {
323	if m != nil {
324		return m.ResourceGroup
325	}
326	return ""
327}
328
329func (m *Category) GetUsageType() string {
330	if m != nil {
331		return m.UsageType
332	}
333	return ""
334}
335
336// Represents the pricing information for a SKU at a single point of time.
337type PricingInfo struct {
338	// The timestamp from which this pricing was effective within the requested
339	// time range. This is guaranteed to be greater than or equal to the
340	// start_time field in the request and less than the end_time field in the
341	// request. If a time range was not specified in the request this field will
342	// be equivalent to a time within the last 12 hours, indicating the latest
343	// pricing info.
344	EffectiveTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"`
345	// An optional human readable summary of the pricing information, has a
346	// maximum length of 256 characters.
347	Summary string `protobuf:"bytes,2,opt,name=summary,proto3" json:"summary,omitempty"`
348	// Expresses the pricing formula. See `PricingExpression` for an example.
349	PricingExpression *PricingExpression `protobuf:"bytes,3,opt,name=pricing_expression,json=pricingExpression,proto3" json:"pricing_expression,omitempty"`
350	// Aggregation Info. This can be left unspecified if the pricing expression
351	// doesn't require aggregation.
352	AggregationInfo *AggregationInfo `protobuf:"bytes,4,opt,name=aggregation_info,json=aggregationInfo,proto3" json:"aggregation_info,omitempty"`
353	// Conversion rate used for currency conversion, from USD to the currency
354	// specified in the request. This includes any surcharge collected for billing
355	// in non USD currency. If a currency is not specified in the request this
356	// defaults to 1.0.
357	// Example: USD * currency_conversion_rate = JPY
358	CurrencyConversionRate float64  `protobuf:"fixed64,5,opt,name=currency_conversion_rate,json=currencyConversionRate,proto3" json:"currency_conversion_rate,omitempty"`
359	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
360	XXX_unrecognized       []byte   `json:"-"`
361	XXX_sizecache          int32    `json:"-"`
362}
363
364func (m *PricingInfo) Reset()         { *m = PricingInfo{} }
365func (m *PricingInfo) String() string { return proto.CompactTextString(m) }
366func (*PricingInfo) ProtoMessage()    {}
367func (*PricingInfo) Descriptor() ([]byte, []int) {
368	return fileDescriptor_4ca652323baa1561, []int{3}
369}
370
371func (m *PricingInfo) XXX_Unmarshal(b []byte) error {
372	return xxx_messageInfo_PricingInfo.Unmarshal(m, b)
373}
374func (m *PricingInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
375	return xxx_messageInfo_PricingInfo.Marshal(b, m, deterministic)
376}
377func (m *PricingInfo) XXX_Merge(src proto.Message) {
378	xxx_messageInfo_PricingInfo.Merge(m, src)
379}
380func (m *PricingInfo) XXX_Size() int {
381	return xxx_messageInfo_PricingInfo.Size(m)
382}
383func (m *PricingInfo) XXX_DiscardUnknown() {
384	xxx_messageInfo_PricingInfo.DiscardUnknown(m)
385}
386
387var xxx_messageInfo_PricingInfo proto.InternalMessageInfo
388
389func (m *PricingInfo) GetEffectiveTime() *timestamp.Timestamp {
390	if m != nil {
391		return m.EffectiveTime
392	}
393	return nil
394}
395
396func (m *PricingInfo) GetSummary() string {
397	if m != nil {
398		return m.Summary
399	}
400	return ""
401}
402
403func (m *PricingInfo) GetPricingExpression() *PricingExpression {
404	if m != nil {
405		return m.PricingExpression
406	}
407	return nil
408}
409
410func (m *PricingInfo) GetAggregationInfo() *AggregationInfo {
411	if m != nil {
412		return m.AggregationInfo
413	}
414	return nil
415}
416
417func (m *PricingInfo) GetCurrencyConversionRate() float64 {
418	if m != nil {
419		return m.CurrencyConversionRate
420	}
421	return 0
422}
423
424// Expresses a mathematical pricing formula. For Example:-
425//
426// `usage_unit: GBy`
427// `tiered_rates:`
428//    `[start_usage_amount: 20, unit_price: $10]`
429//    `[start_usage_amount: 100, unit_price: $5]`
430//
431// The above expresses a pricing formula where the first 20GB is free, the
432// next 80GB is priced at $10 per GB followed by $5 per GB for additional
433// usage.
434type PricingExpression struct {
435	// The short hand for unit of usage this pricing is specified in.
436	// Example: usage_unit of "GiBy" means that usage is specified in "Gibi Byte".
437	UsageUnit string `protobuf:"bytes,1,opt,name=usage_unit,json=usageUnit,proto3" json:"usage_unit,omitempty"`
438	// The unit of usage in human readable form.
439	// Example: "gibi byte".
440	UsageUnitDescription string `protobuf:"bytes,4,opt,name=usage_unit_description,json=usageUnitDescription,proto3" json:"usage_unit_description,omitempty"`
441	// The base unit for the SKU which is the unit used in usage exports.
442	// Example: "By"
443	BaseUnit string `protobuf:"bytes,5,opt,name=base_unit,json=baseUnit,proto3" json:"base_unit,omitempty"`
444	// The base unit in human readable form.
445	// Example: "byte".
446	BaseUnitDescription string `protobuf:"bytes,6,opt,name=base_unit_description,json=baseUnitDescription,proto3" json:"base_unit_description,omitempty"`
447	// Conversion factor for converting from price per usage_unit to price per
448	// base_unit, and start_usage_amount to start_usage_amount in base_unit.
449	// unit_price / base_unit_conversion_factor = price per base_unit.
450	// start_usage_amount * base_unit_conversion_factor = start_usage_amount in
451	// base_unit.
452	BaseUnitConversionFactor float64 `protobuf:"fixed64,7,opt,name=base_unit_conversion_factor,json=baseUnitConversionFactor,proto3" json:"base_unit_conversion_factor,omitempty"`
453	// The recommended quantity of units for displaying pricing info. When
454	// displaying pricing info it is recommended to display:
455	// (unit_price * display_quantity) per display_quantity usage_unit.
456	// This field does not affect the pricing formula and is for display purposes
457	// only.
458	// Example: If the unit_price is "0.0001 USD", the usage_unit is "GB" and
459	// the display_quantity is "1000" then the recommended way of displaying the
460	// pricing info is "0.10 USD per 1000 GB"
461	DisplayQuantity float64 `protobuf:"fixed64,2,opt,name=display_quantity,json=displayQuantity,proto3" json:"display_quantity,omitempty"`
462	// The list of tiered rates for this pricing. The total cost is computed by
463	// applying each of the tiered rates on usage. This repeated list is sorted
464	// by ascending order of start_usage_amount.
465	TieredRates          []*PricingExpression_TierRate `protobuf:"bytes,3,rep,name=tiered_rates,json=tieredRates,proto3" json:"tiered_rates,omitempty"`
466	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
467	XXX_unrecognized     []byte                        `json:"-"`
468	XXX_sizecache        int32                         `json:"-"`
469}
470
471func (m *PricingExpression) Reset()         { *m = PricingExpression{} }
472func (m *PricingExpression) String() string { return proto.CompactTextString(m) }
473func (*PricingExpression) ProtoMessage()    {}
474func (*PricingExpression) Descriptor() ([]byte, []int) {
475	return fileDescriptor_4ca652323baa1561, []int{4}
476}
477
478func (m *PricingExpression) XXX_Unmarshal(b []byte) error {
479	return xxx_messageInfo_PricingExpression.Unmarshal(m, b)
480}
481func (m *PricingExpression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
482	return xxx_messageInfo_PricingExpression.Marshal(b, m, deterministic)
483}
484func (m *PricingExpression) XXX_Merge(src proto.Message) {
485	xxx_messageInfo_PricingExpression.Merge(m, src)
486}
487func (m *PricingExpression) XXX_Size() int {
488	return xxx_messageInfo_PricingExpression.Size(m)
489}
490func (m *PricingExpression) XXX_DiscardUnknown() {
491	xxx_messageInfo_PricingExpression.DiscardUnknown(m)
492}
493
494var xxx_messageInfo_PricingExpression proto.InternalMessageInfo
495
496func (m *PricingExpression) GetUsageUnit() string {
497	if m != nil {
498		return m.UsageUnit
499	}
500	return ""
501}
502
503func (m *PricingExpression) GetUsageUnitDescription() string {
504	if m != nil {
505		return m.UsageUnitDescription
506	}
507	return ""
508}
509
510func (m *PricingExpression) GetBaseUnit() string {
511	if m != nil {
512		return m.BaseUnit
513	}
514	return ""
515}
516
517func (m *PricingExpression) GetBaseUnitDescription() string {
518	if m != nil {
519		return m.BaseUnitDescription
520	}
521	return ""
522}
523
524func (m *PricingExpression) GetBaseUnitConversionFactor() float64 {
525	if m != nil {
526		return m.BaseUnitConversionFactor
527	}
528	return 0
529}
530
531func (m *PricingExpression) GetDisplayQuantity() float64 {
532	if m != nil {
533		return m.DisplayQuantity
534	}
535	return 0
536}
537
538func (m *PricingExpression) GetTieredRates() []*PricingExpression_TierRate {
539	if m != nil {
540		return m.TieredRates
541	}
542	return nil
543}
544
545// The price rate indicating starting usage and its corresponding price.
546type PricingExpression_TierRate struct {
547	// Usage is priced at this rate only after this amount.
548	// Example: start_usage_amount of 10 indicates that the usage will be priced
549	// at the unit_price after the first 10 usage_units.
550	StartUsageAmount float64 `protobuf:"fixed64,1,opt,name=start_usage_amount,json=startUsageAmount,proto3" json:"start_usage_amount,omitempty"`
551	// The price per unit of usage.
552	// Example: unit_price of amount $10 indicates that each unit will cost $10.
553	UnitPrice            *money.Money `protobuf:"bytes,2,opt,name=unit_price,json=unitPrice,proto3" json:"unit_price,omitempty"`
554	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
555	XXX_unrecognized     []byte       `json:"-"`
556	XXX_sizecache        int32        `json:"-"`
557}
558
559func (m *PricingExpression_TierRate) Reset()         { *m = PricingExpression_TierRate{} }
560func (m *PricingExpression_TierRate) String() string { return proto.CompactTextString(m) }
561func (*PricingExpression_TierRate) ProtoMessage()    {}
562func (*PricingExpression_TierRate) Descriptor() ([]byte, []int) {
563	return fileDescriptor_4ca652323baa1561, []int{4, 0}
564}
565
566func (m *PricingExpression_TierRate) XXX_Unmarshal(b []byte) error {
567	return xxx_messageInfo_PricingExpression_TierRate.Unmarshal(m, b)
568}
569func (m *PricingExpression_TierRate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
570	return xxx_messageInfo_PricingExpression_TierRate.Marshal(b, m, deterministic)
571}
572func (m *PricingExpression_TierRate) XXX_Merge(src proto.Message) {
573	xxx_messageInfo_PricingExpression_TierRate.Merge(m, src)
574}
575func (m *PricingExpression_TierRate) XXX_Size() int {
576	return xxx_messageInfo_PricingExpression_TierRate.Size(m)
577}
578func (m *PricingExpression_TierRate) XXX_DiscardUnknown() {
579	xxx_messageInfo_PricingExpression_TierRate.DiscardUnknown(m)
580}
581
582var xxx_messageInfo_PricingExpression_TierRate proto.InternalMessageInfo
583
584func (m *PricingExpression_TierRate) GetStartUsageAmount() float64 {
585	if m != nil {
586		return m.StartUsageAmount
587	}
588	return 0
589}
590
591func (m *PricingExpression_TierRate) GetUnitPrice() *money.Money {
592	if m != nil {
593		return m.UnitPrice
594	}
595	return nil
596}
597
598// Represents the aggregation level and interval for pricing of a single SKU.
599type AggregationInfo struct {
600	AggregationLevel    AggregationInfo_AggregationLevel    `protobuf:"varint,1,opt,name=aggregation_level,json=aggregationLevel,proto3,enum=google.cloud.billing.v1.AggregationInfo_AggregationLevel" json:"aggregation_level,omitempty"`
601	AggregationInterval AggregationInfo_AggregationInterval `protobuf:"varint,2,opt,name=aggregation_interval,json=aggregationInterval,proto3,enum=google.cloud.billing.v1.AggregationInfo_AggregationInterval" json:"aggregation_interval,omitempty"`
602	// The number of intervals to aggregate over.
603	// Example: If aggregation_level is "DAILY" and aggregation_count is 14,
604	// aggregation will be over 14 days.
605	AggregationCount     int32    `protobuf:"varint,3,opt,name=aggregation_count,json=aggregationCount,proto3" json:"aggregation_count,omitempty"`
606	XXX_NoUnkeyedLiteral struct{} `json:"-"`
607	XXX_unrecognized     []byte   `json:"-"`
608	XXX_sizecache        int32    `json:"-"`
609}
610
611func (m *AggregationInfo) Reset()         { *m = AggregationInfo{} }
612func (m *AggregationInfo) String() string { return proto.CompactTextString(m) }
613func (*AggregationInfo) ProtoMessage()    {}
614func (*AggregationInfo) Descriptor() ([]byte, []int) {
615	return fileDescriptor_4ca652323baa1561, []int{5}
616}
617
618func (m *AggregationInfo) XXX_Unmarshal(b []byte) error {
619	return xxx_messageInfo_AggregationInfo.Unmarshal(m, b)
620}
621func (m *AggregationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
622	return xxx_messageInfo_AggregationInfo.Marshal(b, m, deterministic)
623}
624func (m *AggregationInfo) XXX_Merge(src proto.Message) {
625	xxx_messageInfo_AggregationInfo.Merge(m, src)
626}
627func (m *AggregationInfo) XXX_Size() int {
628	return xxx_messageInfo_AggregationInfo.Size(m)
629}
630func (m *AggregationInfo) XXX_DiscardUnknown() {
631	xxx_messageInfo_AggregationInfo.DiscardUnknown(m)
632}
633
634var xxx_messageInfo_AggregationInfo proto.InternalMessageInfo
635
636func (m *AggregationInfo) GetAggregationLevel() AggregationInfo_AggregationLevel {
637	if m != nil {
638		return m.AggregationLevel
639	}
640	return AggregationInfo_AGGREGATION_LEVEL_UNSPECIFIED
641}
642
643func (m *AggregationInfo) GetAggregationInterval() AggregationInfo_AggregationInterval {
644	if m != nil {
645		return m.AggregationInterval
646	}
647	return AggregationInfo_AGGREGATION_INTERVAL_UNSPECIFIED
648}
649
650func (m *AggregationInfo) GetAggregationCount() int32 {
651	if m != nil {
652		return m.AggregationCount
653	}
654	return 0
655}
656
657// Request message for `ListServices`.
658type ListServicesRequest struct {
659	// Requested page size. Defaults to 5000.
660	PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
661	// A token identifying a page of results to return. This should be a
662	// `next_page_token` value returned from a previous `ListServices`
663	// call. If unspecified, the first page of results is returned.
664	PageToken            string   `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
665	XXX_NoUnkeyedLiteral struct{} `json:"-"`
666	XXX_unrecognized     []byte   `json:"-"`
667	XXX_sizecache        int32    `json:"-"`
668}
669
670func (m *ListServicesRequest) Reset()         { *m = ListServicesRequest{} }
671func (m *ListServicesRequest) String() string { return proto.CompactTextString(m) }
672func (*ListServicesRequest) ProtoMessage()    {}
673func (*ListServicesRequest) Descriptor() ([]byte, []int) {
674	return fileDescriptor_4ca652323baa1561, []int{6}
675}
676
677func (m *ListServicesRequest) XXX_Unmarshal(b []byte) error {
678	return xxx_messageInfo_ListServicesRequest.Unmarshal(m, b)
679}
680func (m *ListServicesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
681	return xxx_messageInfo_ListServicesRequest.Marshal(b, m, deterministic)
682}
683func (m *ListServicesRequest) XXX_Merge(src proto.Message) {
684	xxx_messageInfo_ListServicesRequest.Merge(m, src)
685}
686func (m *ListServicesRequest) XXX_Size() int {
687	return xxx_messageInfo_ListServicesRequest.Size(m)
688}
689func (m *ListServicesRequest) XXX_DiscardUnknown() {
690	xxx_messageInfo_ListServicesRequest.DiscardUnknown(m)
691}
692
693var xxx_messageInfo_ListServicesRequest proto.InternalMessageInfo
694
695func (m *ListServicesRequest) GetPageSize() int32 {
696	if m != nil {
697		return m.PageSize
698	}
699	return 0
700}
701
702func (m *ListServicesRequest) GetPageToken() string {
703	if m != nil {
704		return m.PageToken
705	}
706	return ""
707}
708
709// Response message for `ListServices`.
710type ListServicesResponse struct {
711	// A list of services.
712	Services []*Service `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty"`
713	// A token to retrieve the next page of results. To retrieve the next page,
714	// call `ListServices` again with the `page_token` field set to this
715	// value. This field is empty if there are no more results to retrieve.
716	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
717	XXX_NoUnkeyedLiteral struct{} `json:"-"`
718	XXX_unrecognized     []byte   `json:"-"`
719	XXX_sizecache        int32    `json:"-"`
720}
721
722func (m *ListServicesResponse) Reset()         { *m = ListServicesResponse{} }
723func (m *ListServicesResponse) String() string { return proto.CompactTextString(m) }
724func (*ListServicesResponse) ProtoMessage()    {}
725func (*ListServicesResponse) Descriptor() ([]byte, []int) {
726	return fileDescriptor_4ca652323baa1561, []int{7}
727}
728
729func (m *ListServicesResponse) XXX_Unmarshal(b []byte) error {
730	return xxx_messageInfo_ListServicesResponse.Unmarshal(m, b)
731}
732func (m *ListServicesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
733	return xxx_messageInfo_ListServicesResponse.Marshal(b, m, deterministic)
734}
735func (m *ListServicesResponse) XXX_Merge(src proto.Message) {
736	xxx_messageInfo_ListServicesResponse.Merge(m, src)
737}
738func (m *ListServicesResponse) XXX_Size() int {
739	return xxx_messageInfo_ListServicesResponse.Size(m)
740}
741func (m *ListServicesResponse) XXX_DiscardUnknown() {
742	xxx_messageInfo_ListServicesResponse.DiscardUnknown(m)
743}
744
745var xxx_messageInfo_ListServicesResponse proto.InternalMessageInfo
746
747func (m *ListServicesResponse) GetServices() []*Service {
748	if m != nil {
749		return m.Services
750	}
751	return nil
752}
753
754func (m *ListServicesResponse) GetNextPageToken() string {
755	if m != nil {
756		return m.NextPageToken
757	}
758	return ""
759}
760
761// Request message for `ListSkus`.
762type ListSkusRequest struct {
763	// Required. The name of the service.
764	// Example: "services/DA34-426B-A397"
765	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
766	// Optional inclusive start time of the time range for which the pricing
767	// versions will be returned. Timestamps in the future are not allowed.
768	// The time range has to be within a single calendar month in
769	// America/Los_Angeles timezone. Time range as a whole is optional. If not
770	// specified, the latest pricing will be returned (up to 12 hours old at
771	// most).
772	StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
773	// Optional exclusive end time of the time range for which the pricing
774	// versions will be returned. Timestamps in the future are not allowed.
775	// The time range has to be within a single calendar month in
776	// America/Los_Angeles timezone. Time range as a whole is optional. If not
777	// specified, the latest pricing will be returned (up to 12 hours old at
778	// most).
779	EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
780	// The ISO 4217 currency code for the pricing info in the response proto.
781	// Will use the conversion rate as of start_time.
782	// Optional. If not specified USD will be used.
783	CurrencyCode string `protobuf:"bytes,4,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
784	// Requested page size. Defaults to 5000.
785	PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
786	// A token identifying a page of results to return. This should be a
787	// `next_page_token` value returned from a previous `ListSkus`
788	// call. If unspecified, the first page of results is returned.
789	PageToken            string   `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
790	XXX_NoUnkeyedLiteral struct{} `json:"-"`
791	XXX_unrecognized     []byte   `json:"-"`
792	XXX_sizecache        int32    `json:"-"`
793}
794
795func (m *ListSkusRequest) Reset()         { *m = ListSkusRequest{} }
796func (m *ListSkusRequest) String() string { return proto.CompactTextString(m) }
797func (*ListSkusRequest) ProtoMessage()    {}
798func (*ListSkusRequest) Descriptor() ([]byte, []int) {
799	return fileDescriptor_4ca652323baa1561, []int{8}
800}
801
802func (m *ListSkusRequest) XXX_Unmarshal(b []byte) error {
803	return xxx_messageInfo_ListSkusRequest.Unmarshal(m, b)
804}
805func (m *ListSkusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
806	return xxx_messageInfo_ListSkusRequest.Marshal(b, m, deterministic)
807}
808func (m *ListSkusRequest) XXX_Merge(src proto.Message) {
809	xxx_messageInfo_ListSkusRequest.Merge(m, src)
810}
811func (m *ListSkusRequest) XXX_Size() int {
812	return xxx_messageInfo_ListSkusRequest.Size(m)
813}
814func (m *ListSkusRequest) XXX_DiscardUnknown() {
815	xxx_messageInfo_ListSkusRequest.DiscardUnknown(m)
816}
817
818var xxx_messageInfo_ListSkusRequest proto.InternalMessageInfo
819
820func (m *ListSkusRequest) GetParent() string {
821	if m != nil {
822		return m.Parent
823	}
824	return ""
825}
826
827func (m *ListSkusRequest) GetStartTime() *timestamp.Timestamp {
828	if m != nil {
829		return m.StartTime
830	}
831	return nil
832}
833
834func (m *ListSkusRequest) GetEndTime() *timestamp.Timestamp {
835	if m != nil {
836		return m.EndTime
837	}
838	return nil
839}
840
841func (m *ListSkusRequest) GetCurrencyCode() string {
842	if m != nil {
843		return m.CurrencyCode
844	}
845	return ""
846}
847
848func (m *ListSkusRequest) GetPageSize() int32 {
849	if m != nil {
850		return m.PageSize
851	}
852	return 0
853}
854
855func (m *ListSkusRequest) GetPageToken() string {
856	if m != nil {
857		return m.PageToken
858	}
859	return ""
860}
861
862// Response message for `ListSkus`.
863type ListSkusResponse struct {
864	// The list of public SKUs of the given service.
865	Skus []*Sku `protobuf:"bytes,1,rep,name=skus,proto3" json:"skus,omitempty"`
866	// A token to retrieve the next page of results. To retrieve the next page,
867	// call `ListSkus` again with the `page_token` field set to this
868	// value. This field is empty if there are no more results to retrieve.
869	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
870	XXX_NoUnkeyedLiteral struct{} `json:"-"`
871	XXX_unrecognized     []byte   `json:"-"`
872	XXX_sizecache        int32    `json:"-"`
873}
874
875func (m *ListSkusResponse) Reset()         { *m = ListSkusResponse{} }
876func (m *ListSkusResponse) String() string { return proto.CompactTextString(m) }
877func (*ListSkusResponse) ProtoMessage()    {}
878func (*ListSkusResponse) Descriptor() ([]byte, []int) {
879	return fileDescriptor_4ca652323baa1561, []int{9}
880}
881
882func (m *ListSkusResponse) XXX_Unmarshal(b []byte) error {
883	return xxx_messageInfo_ListSkusResponse.Unmarshal(m, b)
884}
885func (m *ListSkusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
886	return xxx_messageInfo_ListSkusResponse.Marshal(b, m, deterministic)
887}
888func (m *ListSkusResponse) XXX_Merge(src proto.Message) {
889	xxx_messageInfo_ListSkusResponse.Merge(m, src)
890}
891func (m *ListSkusResponse) XXX_Size() int {
892	return xxx_messageInfo_ListSkusResponse.Size(m)
893}
894func (m *ListSkusResponse) XXX_DiscardUnknown() {
895	xxx_messageInfo_ListSkusResponse.DiscardUnknown(m)
896}
897
898var xxx_messageInfo_ListSkusResponse proto.InternalMessageInfo
899
900func (m *ListSkusResponse) GetSkus() []*Sku {
901	if m != nil {
902		return m.Skus
903	}
904	return nil
905}
906
907func (m *ListSkusResponse) GetNextPageToken() string {
908	if m != nil {
909		return m.NextPageToken
910	}
911	return ""
912}
913
914func init() {
915	proto.RegisterEnum("google.cloud.billing.v1.AggregationInfo_AggregationLevel", AggregationInfo_AggregationLevel_name, AggregationInfo_AggregationLevel_value)
916	proto.RegisterEnum("google.cloud.billing.v1.AggregationInfo_AggregationInterval", AggregationInfo_AggregationInterval_name, AggregationInfo_AggregationInterval_value)
917	proto.RegisterType((*Service)(nil), "google.cloud.billing.v1.Service")
918	proto.RegisterType((*Sku)(nil), "google.cloud.billing.v1.Sku")
919	proto.RegisterType((*Category)(nil), "google.cloud.billing.v1.Category")
920	proto.RegisterType((*PricingInfo)(nil), "google.cloud.billing.v1.PricingInfo")
921	proto.RegisterType((*PricingExpression)(nil), "google.cloud.billing.v1.PricingExpression")
922	proto.RegisterType((*PricingExpression_TierRate)(nil), "google.cloud.billing.v1.PricingExpression.TierRate")
923	proto.RegisterType((*AggregationInfo)(nil), "google.cloud.billing.v1.AggregationInfo")
924	proto.RegisterType((*ListServicesRequest)(nil), "google.cloud.billing.v1.ListServicesRequest")
925	proto.RegisterType((*ListServicesResponse)(nil), "google.cloud.billing.v1.ListServicesResponse")
926	proto.RegisterType((*ListSkusRequest)(nil), "google.cloud.billing.v1.ListSkusRequest")
927	proto.RegisterType((*ListSkusResponse)(nil), "google.cloud.billing.v1.ListSkusResponse")
928}
929
930func init() {
931	proto.RegisterFile("google/cloud/billing/v1/cloud_catalog.proto", fileDescriptor_4ca652323baa1561)
932}
933
934var fileDescriptor_4ca652323baa1561 = []byte{
935	// 1446 bytes of a gzipped FileDescriptorProto
936	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
937	0x14, 0xef, 0xda, 0x75, 0x62, 0x3f, 0xe7, 0x8f, 0x33, 0x49, 0x1b, 0x93, 0xb4, 0x34, 0x75, 0x5b,
938	0x9a, 0xfe, 0xb3, 0x1b, 0x17, 0x24, 0x5a, 0x5a, 0xc4, 0xc6, 0x71, 0x83, 0x91, 0x9b, 0xa4, 0x1b,
939	0x27, 0x52, 0xb9, 0xac, 0x26, 0xeb, 0xf1, 0x76, 0xe5, 0xf5, 0xee, 0x76, 0x67, 0xd6, 0x6d, 0x5a,
940	0x7a, 0x41, 0x9c, 0xb9, 0x20, 0xf1, 0x01, 0xb8, 0x01, 0x9f, 0x81, 0x2f, 0xc0, 0x05, 0x09, 0x38,
941	0xf5, 0xc4, 0x81, 0x03, 0xea, 0x17, 0x40, 0x42, 0x1c, 0xd0, 0xcc, 0xce, 0xae, 0xd7, 0x4e, 0x93,
942	0x46, 0xdc, 0x3c, 0xbf, 0xf7, 0xff, 0xbd, 0xdf, 0xdb, 0x19, 0xc3, 0x35, 0xd3, 0x75, 0x4d, 0x9b,
943	0x54, 0x0c, 0xdb, 0x0d, 0xda, 0x95, 0x3d, 0xcb, 0xb6, 0x2d, 0xc7, 0xac, 0xf4, 0x57, 0x42, 0x40,
944	0x37, 0x30, 0xc3, 0xb6, 0x6b, 0x96, 0x3d, 0xdf, 0x65, 0x2e, 0x9a, 0x0f, 0x95, 0xcb, 0x42, 0x56,
945	0x96, 0xca, 0xe5, 0xfe, 0xca, 0xc2, 0x19, 0xe9, 0x05, 0x7b, 0x56, 0x05, 0x3b, 0x8e, 0xcb, 0x30,
946	0xb3, 0x5c, 0x87, 0x86, 0x66, 0x0b, 0xf3, 0x09, 0xa9, 0x61, 0x5b, 0xc4, 0x61, 0x52, 0x70, 0x2e,
947	0x21, 0xe8, 0x58, 0xc4, 0x6e, 0xeb, 0x7b, 0xe4, 0x31, 0xee, 0x5b, 0xae, 0x2f, 0x15, 0xde, 0x49,
948	0x28, 0xf8, 0x84, 0xba, 0x81, 0x6f, 0x90, 0x11, 0x5b, 0x71, 0xda, 0x0b, 0x3a, 0x15, 0x66, 0xf5,
949	0x08, 0x65, 0xb8, 0xe7, 0x8d, 0x44, 0x65, 0xfb, 0x1e, 0xa9, 0xf4, 0x5c, 0x87, 0xec, 0x87, 0x82,
950	0xd2, 0x2f, 0x0a, 0x8c, 0x6f, 0x13, 0xbf, 0x6f, 0x19, 0x04, 0x21, 0x38, 0xe9, 0xe0, 0x1e, 0x29,
951	0x2a, 0x4b, 0xca, 0x72, 0x4e, 0x13, 0xbf, 0xd1, 0x59, 0x00, 0x1a, 0x8a, 0x75, 0xab, 0x5d, 0x4c,
952	0x09, 0x49, 0x4e, 0x22, 0x8d, 0x36, 0x3a, 0x0f, 0x13, 0x6d, 0x8b, 0x7a, 0x36, 0xde, 0xd7, 0x85,
953	0x69, 0x5a, 0x28, 0xe4, 0x25, 0xb6, 0xc1, 0x3d, 0xdc, 0x84, 0xb9, 0xbd, 0x80, 0x5a, 0x0e, 0xa1,
954	0x54, 0x27, 0x0e, 0xb3, 0x98, 0x54, 0x3d, 0x29, 0x54, 0x51, 0x24, 0xab, 0x0b, 0x11, 0xb7, 0xb8,
955	0x73, 0xf7, 0xb5, 0x7a, 0x1b, 0x2e, 0x88, 0xbe, 0x46, 0x6d, 0x0d, 0xd3, 0xc7, 0x9e, 0x45, 0xcb,
956	0x86, 0xdb, 0xab, 0xc4, 0x19, 0xcb, 0x4c, 0x68, 0xe5, 0x85, 0xfc, 0xf5, 0xb2, 0xf4, 0x6f, 0x0a,
957	0xd2, 0xdb, 0xdd, 0xe0, 0x8d, 0xd5, 0x9c, 0x82, 0x31, 0xda, 0x0d, 0x06, 0x95, 0x64, 0x68, 0x37,
958	0x68, 0xb4, 0xd1, 0x12, 0xe4, 0xdb, 0x84, 0x1a, 0xbe, 0xe5, 0xf1, 0x49, 0xc5, 0x45, 0x0c, 0x20,
959	0x74, 0x0f, 0xb2, 0x06, 0x66, 0xc4, 0x74, 0xfd, 0x7d, 0x91, 0x78, 0xbe, 0x7a, 0xbe, 0x7c, 0xc8,
960	0xfc, 0xcb, 0x35, 0xa9, 0xa8, 0xc5, 0x26, 0xe8, 0x32, 0x4c, 0x47, 0x5d, 0xf4, 0x89, 0xc9, 0xd9,
961	0x50, 0xcc, 0x2c, 0xa5, 0x97, 0x73, 0xda, 0x94, 0x84, 0xb5, 0x10, 0x45, 0xeb, 0x30, 0xe1, 0xf9,
962	0x96, 0x61, 0x39, 0xa6, 0x6e, 0x39, 0x1d, 0xb7, 0x38, 0xb6, 0x94, 0x5e, 0xce, 0x57, 0x2f, 0x1e,
963	0x1a, 0x6b, 0x2b, 0x54, 0x6e, 0x38, 0x1d, 0x57, 0xcb, 0x7b, 0x83, 0x03, 0xaa, 0xc2, 0xa9, 0x28,
964	0xa2, 0xe7, 0xbb, 0x7d, 0xab, 0x4d, 0xfc, 0xb0, 0xed, 0xe3, 0xa2, 0xb8, 0x59, 0x29, 0xdc, 0x92,
965	0x32, 0xd1, 0xf7, 0xda, 0x6b, 0xf5, 0x13, 0x38, 0x77, 0x64, 0xdf, 0xbb, 0x01, 0x3a, 0x7b, 0xb0,
966	0xe7, 0x15, 0xda, 0x0d, 0xf8, 0xb1, 0x1b, 0xbc, 0x2c, 0xfd, 0xa8, 0x40, 0x36, 0xea, 0x00, 0x9f,
967	0x7d, 0x94, 0xc5, 0x10, 0x4d, 0xc2, 0x99, 0x44, 0xd3, 0x5b, 0x4b, 0xb0, 0xe5, 0x32, 0x4c, 0x47,
968	0xdc, 0xd6, 0x3b, 0xb8, 0x67, 0xd9, 0xfb, 0x72, 0x54, 0x53, 0x11, 0x7c, 0x5f, 0xa0, 0xe8, 0x12,
969	0xc4, 0x88, 0x6e, 0xfa, 0x6e, 0xe0, 0xc9, 0xb1, 0x4d, 0x46, 0xe8, 0x3a, 0x07, 0x39, 0x7f, 0x03,
970	0x8a, 0x4d, 0xa2, 0x73, 0xe6, 0x4b, 0xce, 0xe5, 0x04, 0xd2, 0xda, 0xf7, 0x48, 0xe9, 0xf7, 0x14,
971	0xe4, 0x13, 0x3d, 0x44, 0x2a, 0x4c, 0x91, 0x4e, 0x87, 0x18, 0xcc, 0xea, 0x13, 0x9d, 0x2f, 0x91,
972	0x48, 0x35, 0x5f, 0x5d, 0x88, 0x26, 0x10, 0x6d, 0x58, 0xb9, 0x15, 0x6d, 0x98, 0x36, 0x19, 0x5b,
973	0x70, 0x0c, 0x15, 0x61, 0x9c, 0x06, 0xbd, 0x1e, 0xf6, 0xa3, 0xcc, 0xa3, 0x23, 0x7a, 0x04, 0x28,
974	0x1a, 0x2e, 0x79, 0xe6, 0xf9, 0x84, 0xd2, 0x88, 0x6d, 0xf9, 0xea, 0xd5, 0xb7, 0x8d, 0xb8, 0x1e,
975	0x5b, 0x68, 0x33, 0xde, 0x28, 0x84, 0xb6, 0xa1, 0x80, 0x4d, 0xd3, 0x27, 0xa6, 0xf8, 0xd6, 0x84,
976	0xdc, 0x09, 0x79, 0xba, 0x7c, 0xa8, 0x63, 0x75, 0x60, 0x20, 0xf8, 0x33, 0x8d, 0x87, 0x01, 0xf4,
977	0x21, 0x14, 0x8d, 0xc0, 0xf7, 0x89, 0x63, 0xec, 0xeb, 0x86, 0xeb, 0xf4, 0x89, 0xcf, 0x63, 0xe9,
978	0x3e, 0x66, 0xa4, 0x98, 0x59, 0x52, 0x96, 0x15, 0xed, 0x74, 0x24, 0xaf, 0xc5, 0x62, 0x0d, 0x33,
979	0x52, 0xfa, 0x2b, 0x0d, 0x33, 0x07, 0xf2, 0x1e, 0xcc, 0x22, 0x70, 0x2c, 0x26, 0x39, 0x10, 0xce,
980	0x62, 0xc7, 0xb1, 0x18, 0x7a, 0x1f, 0x4e, 0x0f, 0xc4, 0x7a, 0x72, 0x21, 0xc3, 0xb1, 0xcd, 0xc5,
981	0xaa, 0x6b, 0x89, 0xcd, 0x5c, 0x84, 0xdc, 0x1e, 0xa6, 0xd2, 0x67, 0x46, 0x28, 0x66, 0x39, 0x20,
982	0x5c, 0x56, 0xe1, 0x54, 0x2c, 0x1c, 0xf2, 0x38, 0x16, 0x6e, 0x41, 0xa4, 0xb8, 0x36, 0xb4, 0xea,
983	0x8b, 0x03, 0x9b, 0x44, 0xd9, 0x1d, 0x6c, 0x30, 0xd7, 0x17, 0xfb, 0xa3, 0x68, 0xc5, 0xc8, 0x72,
984	0x50, 0xf8, 0x7d, 0x21, 0x47, 0x57, 0xa0, 0x10, 0x51, 0xfd, 0x49, 0x80, 0xc5, 0x47, 0x4d, 0xf0,
985	0x40, 0xd1, 0xa6, 0x25, 0xfe, 0x50, 0xc2, 0x68, 0x17, 0x26, 0x98, 0x45, 0x7c, 0xd2, 0x16, 0x2d,
986	0xa5, 0xc5, 0xb4, 0x58, 0xf6, 0x5b, 0xc7, 0x67, 0x42, 0xb9, 0x65, 0x11, 0x9f, 0x37, 0x5c, 0xcb,
987	0x87, 0x8e, 0xf8, 0x6f, 0xba, 0xd0, 0x85, 0x6c, 0x24, 0x40, 0xd7, 0x01, 0x51, 0x86, 0x7d, 0xa6,
988	0x87, 0xad, 0xc5, 0x3d, 0x37, 0x70, 0xc2, 0xde, 0x2b, 0x5a, 0x41, 0x48, 0x76, 0xb8, 0x40, 0x15,
989	0x38, 0x5a, 0x01, 0x10, 0x65, 0x73, 0x82, 0x11, 0x91, 0x76, 0xbe, 0x8a, 0xa2, 0x7c, 0xf8, 0x06,
990	0x95, 0x1f, 0xf0, 0xbb, 0x43, 0xcb, 0x71, 0x2d, 0x9e, 0x0e, 0x29, 0xfd, 0x94, 0x86, 0xe9, 0x11,
991	0x26, 0xa1, 0x0e, 0xcc, 0x24, 0xd9, 0x68, 0x93, 0x3e, 0xb1, 0x45, 0xcc, 0xa9, 0xea, 0xed, 0xe3,
992	0xd2, 0x31, 0x79, 0x6e, 0x72, 0x07, 0x5a, 0x92, 0xe1, 0x02, 0x41, 0x2e, 0xcc, 0x0d, 0xb3, 0x9e,
993	0x11, 0xbf, 0x8f, 0x6d, 0x91, 0xf8, 0x54, 0xf5, 0xee, 0xff, 0x09, 0xd5, 0x90, 0x3e, 0xb4, 0x59,
994	0x7c, 0x10, 0x44, 0xd7, 0x86, 0x0b, 0x33, 0x44, 0x33, 0xf9, 0x02, 0x67, 0x86, 0xb2, 0xab, 0x71,
995	0xbc, 0xb4, 0x09, 0x85, 0xd1, 0x1a, 0xd0, 0x79, 0x38, 0xab, 0xae, 0xaf, 0x6b, 0xf5, 0x75, 0xb5,
996	0xd5, 0xd8, 0xdc, 0xd0, 0x9b, 0xf5, 0xdd, 0x7a, 0x53, 0xdf, 0xd9, 0xd8, 0xde, 0xaa, 0xd7, 0x1a,
997	0xf7, 0x1b, 0xf5, 0xb5, 0xc2, 0x09, 0x94, 0x87, 0x71, 0xb5, 0x56, 0xdb, 0xdc, 0xd9, 0x68, 0x15,
998	0x14, 0x7e, 0xd8, 0xd2, 0x36, 0x3f, 0xab, 0xd7, 0x5a, 0x85, 0x54, 0x69, 0x1b, 0x66, 0xdf, 0x90,
999	0x29, 0xba, 0x08, 0x4b, 0x49, 0x9f, 0x8d, 0x8d, 0x56, 0x5d, 0xdb, 0x55, 0x47, 0xdd, 0xe6, 0x20,
1000	0xb3, 0xa6, 0x36, 0x9a, 0x8f, 0x42, 0xa7, 0x0f, 0x36, 0x37, 0x5a, 0x9f, 0x36, 0x1f, 0x15, 0x52,
1001	0xa5, 0x87, 0x30, 0xdb, 0xb4, 0x28, 0x93, 0x37, 0x2a, 0xd5, 0xc8, 0x93, 0x80, 0x50, 0xc6, 0xd7,
1002	0xca, 0xe3, 0x84, 0xa1, 0xd6, 0xf3, 0xf0, 0x1b, 0x98, 0xd1, 0xb2, 0x1c, 0xd8, 0xb6, 0x9e, 0x8b,
1003	0x47, 0x81, 0x10, 0x32, 0xb7, 0x4b, 0x9c, 0xe8, 0x51, 0xc0, 0x91, 0x16, 0x07, 0x4a, 0x5f, 0xc0,
1004	0xdc, 0xb0, 0x4b, 0xea, 0xb9, 0x0e, 0x25, 0xe8, 0x2e, 0x64, 0xa3, 0xbb, 0xa3, 0xa8, 0x08, 0xae,
1005	0x2f, 0x1d, 0x3a, 0x22, 0x69, 0xac, 0xc5, 0x16, 0xe8, 0x3d, 0x98, 0x76, 0xc8, 0x33, 0xa6, 0x1f,
1006	0x88, 0x3c, 0xc9, 0xe1, 0xad, 0x38, 0xfa, 0xf7, 0x29, 0x98, 0x16, 0xe1, 0xbb, 0x41, 0x5c, 0x4d,
1007	0x0d, 0xc6, 0x3c, 0xec, 0x13, 0xc9, 0xfc, 0xdc, 0xea, 0xb5, 0x3f, 0xd4, 0xd4, 0x3f, 0xea, 0xa5,
1008	0x63, 0x3d, 0x32, 0x34, 0x69, 0x8a, 0x6e, 0x03, 0x84, 0xab, 0x24, 0xee, 0x85, 0xd4, 0x5b, 0xef,
1009	0x85, 0x9c, 0xd0, 0x16, 0x77, 0xc2, 0x07, 0x90, 0x25, 0x4e, 0x3b, 0x34, 0x4c, 0xbf, 0xd5, 0x70,
1010	0x9c, 0x38, 0x6d, 0x61, 0x76, 0x01, 0x26, 0x13, 0x1f, 0xe0, 0x76, 0x74, 0x7f, 0x4d, 0x0c, 0xbe,
1011	0xba, 0x6d, 0x32, 0x3c, 0xa9, 0xcc, 0x91, 0x93, 0x1a, 0x1b, 0x9d, 0x94, 0x0d, 0x85, 0x41, 0xab,
1012	0xe4, 0x94, 0x6e, 0xc2, 0x49, 0x7e, 0x9d, 0xcb, 0x09, 0x9d, 0x39, 0x7c, 0x42, 0xdd, 0x40, 0x13,
1013	0x9a, 0xc7, 0x9d, 0x4c, 0xf5, 0xef, 0x14, 0x4c, 0xd4, 0xb8, 0x9b, 0x5a, 0xf8, 0x90, 0x46, 0x5f,
1014	0x29, 0x30, 0x91, 0x64, 0x0a, 0xba, 0x7e, 0x68, 0xb4, 0x37, 0x70, 0x74, 0xe1, 0xc6, 0x31, 0xb5,
1015	0xc3, 0xc2, 0x4a, 0xf3, 0xaf, 0xd4, 0x13, 0x5f, 0xfe, 0xf6, 0xe7, 0x37, 0xa9, 0x29, 0x34, 0xc1,
1016	0x1f, 0xf5, 0x31, 0xb3, 0xbe, 0x56, 0x20, 0x1b, 0xb5, 0x01, 0x2d, 0x1f, 0xed, 0x74, 0x40, 0xaa,
1017	0x85, 0x2b, 0xc7, 0xd0, 0x94, 0xa1, 0x6f, 0xbc, 0x52, 0x25, 0x8b, 0x44, 0x02, 0xef, 0xa2, 0x33,
1018	0x3c, 0x81, 0x17, 0x21, 0x74, 0x2f, 0x7e, 0x50, 0x5d, 0x0d, 0x5f, 0x52, 0x0b, 0x9b, 0x3f, 0xab,
1019	0x8b, 0x47, 0x30, 0xf3, 0x57, 0xb5, 0xfc, 0x98, 0x31, 0x8f, 0xde, 0xa9, 0x54, 0x9e, 0x3e, 0x7d,
1020	0x3a, 0x4a, 0x5b, 0x1c, 0xb0, 0xc7, 0xe1, 0x1f, 0x96, 0x1b, 0x9e, 0x8d, 0x59, 0xc7, 0xf5, 0x7b,
1021	0xab, 0xdf, 0x2a, 0xb0, 0x68, 0xb8, 0xbd, 0xc3, 0x12, 0x5e, 0x9d, 0x49, 0x8e, 0x65, 0x8b, 0x33,
1022	0x72, 0x4b, 0xf9, 0xfc, 0x63, 0xa9, 0x6d, 0xba, 0x36, 0x76, 0xcc, 0xb2, 0xeb, 0x9b, 0x15, 0x93,
1023	0x38, 0x82, 0xaf, 0x95, 0x41, 0xcc, 0x03, 0x7f, 0x96, 0x3e, 0x92, 0x3f, 0xbf, 0x4b, 0x8d, 0xd7,
1024	0x9a, 0x6b, 0xb5, 0x56, 0x73, 0xfd, 0x87, 0xd4, 0xfc, 0x7a, 0xe8, 0x4a, 0x84, 0x29, 0xaf, 0xca,
1025	0xc0, 0xbb, 0x2b, 0x7b, 0x63, 0xc2, 0xdd, 0xad, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x98, 0x2d,
1026	0xcc, 0x14, 0x7a, 0x0d, 0x00, 0x00,
1027}
1028
1029// Reference imports to suppress errors if they are not otherwise used.
1030var _ context.Context
1031var _ grpc.ClientConnInterface
1032
1033// This is a compile-time assertion to ensure that this generated file
1034// is compatible with the grpc package it is being compiled against.
1035const _ = grpc.SupportPackageIsVersion6
1036
1037// CloudCatalogClient is the client API for CloudCatalog service.
1038//
1039// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
1040type CloudCatalogClient interface {
1041	// Lists all public cloud services.
1042	ListServices(ctx context.Context, in *ListServicesRequest, opts ...grpc.CallOption) (*ListServicesResponse, error)
1043	// Lists all publicly available SKUs for a given cloud service.
1044	ListSkus(ctx context.Context, in *ListSkusRequest, opts ...grpc.CallOption) (*ListSkusResponse, error)
1045}
1046
1047type cloudCatalogClient struct {
1048	cc grpc.ClientConnInterface
1049}
1050
1051func NewCloudCatalogClient(cc grpc.ClientConnInterface) CloudCatalogClient {
1052	return &cloudCatalogClient{cc}
1053}
1054
1055func (c *cloudCatalogClient) ListServices(ctx context.Context, in *ListServicesRequest, opts ...grpc.CallOption) (*ListServicesResponse, error) {
1056	out := new(ListServicesResponse)
1057	err := c.cc.Invoke(ctx, "/google.cloud.billing.v1.CloudCatalog/ListServices", in, out, opts...)
1058	if err != nil {
1059		return nil, err
1060	}
1061	return out, nil
1062}
1063
1064func (c *cloudCatalogClient) ListSkus(ctx context.Context, in *ListSkusRequest, opts ...grpc.CallOption) (*ListSkusResponse, error) {
1065	out := new(ListSkusResponse)
1066	err := c.cc.Invoke(ctx, "/google.cloud.billing.v1.CloudCatalog/ListSkus", in, out, opts...)
1067	if err != nil {
1068		return nil, err
1069	}
1070	return out, nil
1071}
1072
1073// CloudCatalogServer is the server API for CloudCatalog service.
1074type CloudCatalogServer interface {
1075	// Lists all public cloud services.
1076	ListServices(context.Context, *ListServicesRequest) (*ListServicesResponse, error)
1077	// Lists all publicly available SKUs for a given cloud service.
1078	ListSkus(context.Context, *ListSkusRequest) (*ListSkusResponse, error)
1079}
1080
1081// UnimplementedCloudCatalogServer can be embedded to have forward compatible implementations.
1082type UnimplementedCloudCatalogServer struct {
1083}
1084
1085func (*UnimplementedCloudCatalogServer) ListServices(ctx context.Context, req *ListServicesRequest) (*ListServicesResponse, error) {
1086	return nil, status.Errorf(codes.Unimplemented, "method ListServices not implemented")
1087}
1088func (*UnimplementedCloudCatalogServer) ListSkus(ctx context.Context, req *ListSkusRequest) (*ListSkusResponse, error) {
1089	return nil, status.Errorf(codes.Unimplemented, "method ListSkus not implemented")
1090}
1091
1092func RegisterCloudCatalogServer(s *grpc.Server, srv CloudCatalogServer) {
1093	s.RegisterService(&_CloudCatalog_serviceDesc, srv)
1094}
1095
1096func _CloudCatalog_ListServices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1097	in := new(ListServicesRequest)
1098	if err := dec(in); err != nil {
1099		return nil, err
1100	}
1101	if interceptor == nil {
1102		return srv.(CloudCatalogServer).ListServices(ctx, in)
1103	}
1104	info := &grpc.UnaryServerInfo{
1105		Server:     srv,
1106		FullMethod: "/google.cloud.billing.v1.CloudCatalog/ListServices",
1107	}
1108	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1109		return srv.(CloudCatalogServer).ListServices(ctx, req.(*ListServicesRequest))
1110	}
1111	return interceptor(ctx, in, info, handler)
1112}
1113
1114func _CloudCatalog_ListSkus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1115	in := new(ListSkusRequest)
1116	if err := dec(in); err != nil {
1117		return nil, err
1118	}
1119	if interceptor == nil {
1120		return srv.(CloudCatalogServer).ListSkus(ctx, in)
1121	}
1122	info := &grpc.UnaryServerInfo{
1123		Server:     srv,
1124		FullMethod: "/google.cloud.billing.v1.CloudCatalog/ListSkus",
1125	}
1126	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1127		return srv.(CloudCatalogServer).ListSkus(ctx, req.(*ListSkusRequest))
1128	}
1129	return interceptor(ctx, in, info, handler)
1130}
1131
1132var _CloudCatalog_serviceDesc = grpc.ServiceDesc{
1133	ServiceName: "google.cloud.billing.v1.CloudCatalog",
1134	HandlerType: (*CloudCatalogServer)(nil),
1135	Methods: []grpc.MethodDesc{
1136		{
1137			MethodName: "ListServices",
1138			Handler:    _CloudCatalog_ListServices_Handler,
1139		},
1140		{
1141			MethodName: "ListSkus",
1142			Handler:    _CloudCatalog_ListSkus_Handler,
1143		},
1144	},
1145	Streams:  []grpc.StreamDesc{},
1146	Metadata: "google/cloud/billing/v1/cloud_catalog.proto",
1147}
1148