1package billing
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"encoding/json"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/date"
24	"github.com/Azure/go-autorest/autorest/to"
25	"net/http"
26)
27
28// DownloadURL a secure URL that can be used to download a PDF invoice until the URL expires.
29type DownloadURL struct {
30	// ExpiryTime - The time in UTC at which this download URL will expire.
31	ExpiryTime *date.Time `json:"expiryTime,omitempty"`
32	// URL - The URL to the PDF file.
33	URL *string `json:"url,omitempty"`
34}
35
36// EnrollmentAccount an enrollment account resource.
37type EnrollmentAccount struct {
38	autorest.Response `json:"-"`
39	// EnrollmentAccountProperties - An enrollment account.
40	*EnrollmentAccountProperties `json:"properties,omitempty"`
41	// ID - Resource Id.
42	ID *string `json:"id,omitempty"`
43	// Name - Resource name.
44	Name *string `json:"name,omitempty"`
45	// Type - Resource type.
46	Type *string `json:"type,omitempty"`
47}
48
49// MarshalJSON is the custom marshaler for EnrollmentAccount.
50func (ea EnrollmentAccount) MarshalJSON() ([]byte, error) {
51	objectMap := make(map[string]interface{})
52	if ea.EnrollmentAccountProperties != nil {
53		objectMap["properties"] = ea.EnrollmentAccountProperties
54	}
55	if ea.ID != nil {
56		objectMap["id"] = ea.ID
57	}
58	if ea.Name != nil {
59		objectMap["name"] = ea.Name
60	}
61	if ea.Type != nil {
62		objectMap["type"] = ea.Type
63	}
64	return json.Marshal(objectMap)
65}
66
67// UnmarshalJSON is the custom unmarshaler for EnrollmentAccount struct.
68func (ea *EnrollmentAccount) UnmarshalJSON(body []byte) error {
69	var m map[string]*json.RawMessage
70	err := json.Unmarshal(body, &m)
71	if err != nil {
72		return err
73	}
74	for k, v := range m {
75		switch k {
76		case "properties":
77			if v != nil {
78				var enrollmentAccountProperties EnrollmentAccountProperties
79				err = json.Unmarshal(*v, &enrollmentAccountProperties)
80				if err != nil {
81					return err
82				}
83				ea.EnrollmentAccountProperties = &enrollmentAccountProperties
84			}
85		case "id":
86			if v != nil {
87				var ID string
88				err = json.Unmarshal(*v, &ID)
89				if err != nil {
90					return err
91				}
92				ea.ID = &ID
93			}
94		case "name":
95			if v != nil {
96				var name string
97				err = json.Unmarshal(*v, &name)
98				if err != nil {
99					return err
100				}
101				ea.Name = &name
102			}
103		case "type":
104			if v != nil {
105				var typeVar string
106				err = json.Unmarshal(*v, &typeVar)
107				if err != nil {
108					return err
109				}
110				ea.Type = &typeVar
111			}
112		}
113	}
114
115	return nil
116}
117
118// EnrollmentAccountListResult result of listing enrollment accounts.
119type EnrollmentAccountListResult struct {
120	autorest.Response `json:"-"`
121	// Value - The list of enrollment accounts.
122	Value *[]EnrollmentAccount `json:"value,omitempty"`
123	// NextLink - The link (url) to the next page of results.
124	NextLink *string `json:"nextLink,omitempty"`
125}
126
127// EnrollmentAccountListResultIterator provides access to a complete listing of EnrollmentAccount values.
128type EnrollmentAccountListResultIterator struct {
129	i    int
130	page EnrollmentAccountListResultPage
131}
132
133// Next advances to the next value.  If there was an error making
134// the request the iterator does not advance and the error is returned.
135func (iter *EnrollmentAccountListResultIterator) Next() error {
136	iter.i++
137	if iter.i < len(iter.page.Values()) {
138		return nil
139	}
140	err := iter.page.Next()
141	if err != nil {
142		iter.i--
143		return err
144	}
145	iter.i = 0
146	return nil
147}
148
149// NotDone returns true if the enumeration should be started or is not yet complete.
150func (iter EnrollmentAccountListResultIterator) NotDone() bool {
151	return iter.page.NotDone() && iter.i < len(iter.page.Values())
152}
153
154// Response returns the raw server response from the last page request.
155func (iter EnrollmentAccountListResultIterator) Response() EnrollmentAccountListResult {
156	return iter.page.Response()
157}
158
159// Value returns the current value or a zero-initialized value if the
160// iterator has advanced beyond the end of the collection.
161func (iter EnrollmentAccountListResultIterator) Value() EnrollmentAccount {
162	if !iter.page.NotDone() {
163		return EnrollmentAccount{}
164	}
165	return iter.page.Values()[iter.i]
166}
167
168// IsEmpty returns true if the ListResult contains no values.
169func (ealr EnrollmentAccountListResult) IsEmpty() bool {
170	return ealr.Value == nil || len(*ealr.Value) == 0
171}
172
173// enrollmentAccountListResultPreparer prepares a request to retrieve the next set of results.
174// It returns nil if no more results exist.
175func (ealr EnrollmentAccountListResult) enrollmentAccountListResultPreparer() (*http.Request, error) {
176	if ealr.NextLink == nil || len(to.String(ealr.NextLink)) < 1 {
177		return nil, nil
178	}
179	return autorest.Prepare(&http.Request{},
180		autorest.AsJSON(),
181		autorest.AsGet(),
182		autorest.WithBaseURL(to.String(ealr.NextLink)))
183}
184
185// EnrollmentAccountListResultPage contains a page of EnrollmentAccount values.
186type EnrollmentAccountListResultPage struct {
187	fn   func(EnrollmentAccountListResult) (EnrollmentAccountListResult, error)
188	ealr EnrollmentAccountListResult
189}
190
191// Next advances to the next page of values.  If there was an error making
192// the request the page does not advance and the error is returned.
193func (page *EnrollmentAccountListResultPage) Next() error {
194	next, err := page.fn(page.ealr)
195	if err != nil {
196		return err
197	}
198	page.ealr = next
199	return nil
200}
201
202// NotDone returns true if the page enumeration should be started or is not yet complete.
203func (page EnrollmentAccountListResultPage) NotDone() bool {
204	return !page.ealr.IsEmpty()
205}
206
207// Response returns the raw server response from the last page request.
208func (page EnrollmentAccountListResultPage) Response() EnrollmentAccountListResult {
209	return page.ealr
210}
211
212// Values returns the slice of values for the current page or nil if there are no values.
213func (page EnrollmentAccountListResultPage) Values() []EnrollmentAccount {
214	if page.ealr.IsEmpty() {
215		return nil
216	}
217	return *page.ealr.Value
218}
219
220// EnrollmentAccountProperties the properties of the enrollment account.
221type EnrollmentAccountProperties struct {
222	// PrincipalName - The account owner's principal name.
223	PrincipalName *string `json:"principalName,omitempty"`
224}
225
226// ErrorDetails the details of the error.
227type ErrorDetails struct {
228	// Code - Error code.
229	Code *string `json:"code,omitempty"`
230	// Message - Error message indicating why the operation failed.
231	Message *string `json:"message,omitempty"`
232	// Target - The target of the particular error.
233	Target *string `json:"target,omitempty"`
234}
235
236// ErrorResponse error response indicates that the service is not able to process the incoming request. The reason
237// is provided in the error message.
238type ErrorResponse struct {
239	// Error - The details of the error.
240	Error *ErrorDetails `json:"error,omitempty"`
241}
242
243// Invoice an invoice resource can be used download a PDF version of an invoice.
244type Invoice struct {
245	autorest.Response `json:"-"`
246	// InvoiceProperties - An invoice.
247	*InvoiceProperties `json:"properties,omitempty"`
248	// ID - Resource Id.
249	ID *string `json:"id,omitempty"`
250	// Name - Resource name.
251	Name *string `json:"name,omitempty"`
252	// Type - Resource type.
253	Type *string `json:"type,omitempty"`
254}
255
256// MarshalJSON is the custom marshaler for Invoice.
257func (i Invoice) MarshalJSON() ([]byte, error) {
258	objectMap := make(map[string]interface{})
259	if i.InvoiceProperties != nil {
260		objectMap["properties"] = i.InvoiceProperties
261	}
262	if i.ID != nil {
263		objectMap["id"] = i.ID
264	}
265	if i.Name != nil {
266		objectMap["name"] = i.Name
267	}
268	if i.Type != nil {
269		objectMap["type"] = i.Type
270	}
271	return json.Marshal(objectMap)
272}
273
274// UnmarshalJSON is the custom unmarshaler for Invoice struct.
275func (i *Invoice) UnmarshalJSON(body []byte) error {
276	var m map[string]*json.RawMessage
277	err := json.Unmarshal(body, &m)
278	if err != nil {
279		return err
280	}
281	for k, v := range m {
282		switch k {
283		case "properties":
284			if v != nil {
285				var invoiceProperties InvoiceProperties
286				err = json.Unmarshal(*v, &invoiceProperties)
287				if err != nil {
288					return err
289				}
290				i.InvoiceProperties = &invoiceProperties
291			}
292		case "id":
293			if v != nil {
294				var ID string
295				err = json.Unmarshal(*v, &ID)
296				if err != nil {
297					return err
298				}
299				i.ID = &ID
300			}
301		case "name":
302			if v != nil {
303				var name string
304				err = json.Unmarshal(*v, &name)
305				if err != nil {
306					return err
307				}
308				i.Name = &name
309			}
310		case "type":
311			if v != nil {
312				var typeVar string
313				err = json.Unmarshal(*v, &typeVar)
314				if err != nil {
315					return err
316				}
317				i.Type = &typeVar
318			}
319		}
320	}
321
322	return nil
323}
324
325// InvoiceProperties the properties of the invoice.
326type InvoiceProperties struct {
327	// DownloadURL - A secure link to download the PDF version of an invoice. The link will cease to work after its expiry time is reached.
328	DownloadURL *DownloadURL `json:"downloadUrl,omitempty"`
329	// InvoicePeriodStartDate - The start of the date range covered by the invoice.
330	InvoicePeriodStartDate *date.Date `json:"invoicePeriodStartDate,omitempty"`
331	// InvoicePeriodEndDate - The end of the date range covered by the invoice.
332	InvoicePeriodEndDate *date.Date `json:"invoicePeriodEndDate,omitempty"`
333	// BillingPeriodIds - Array of billing perdiod ids that the invoice is attributed to.
334	BillingPeriodIds *[]string `json:"billingPeriodIds,omitempty"`
335}
336
337// InvoicesListResult result of listing invoices. It contains a list of available invoices in reverse chronological
338// order.
339type InvoicesListResult struct {
340	autorest.Response `json:"-"`
341	// Value - The list of invoices.
342	Value *[]Invoice `json:"value,omitempty"`
343	// NextLink - The link (url) to the next page of results.
344	NextLink *string `json:"nextLink,omitempty"`
345}
346
347// InvoicesListResultIterator provides access to a complete listing of Invoice values.
348type InvoicesListResultIterator struct {
349	i    int
350	page InvoicesListResultPage
351}
352
353// Next advances to the next value.  If there was an error making
354// the request the iterator does not advance and the error is returned.
355func (iter *InvoicesListResultIterator) Next() error {
356	iter.i++
357	if iter.i < len(iter.page.Values()) {
358		return nil
359	}
360	err := iter.page.Next()
361	if err != nil {
362		iter.i--
363		return err
364	}
365	iter.i = 0
366	return nil
367}
368
369// NotDone returns true if the enumeration should be started or is not yet complete.
370func (iter InvoicesListResultIterator) NotDone() bool {
371	return iter.page.NotDone() && iter.i < len(iter.page.Values())
372}
373
374// Response returns the raw server response from the last page request.
375func (iter InvoicesListResultIterator) Response() InvoicesListResult {
376	return iter.page.Response()
377}
378
379// Value returns the current value or a zero-initialized value if the
380// iterator has advanced beyond the end of the collection.
381func (iter InvoicesListResultIterator) Value() Invoice {
382	if !iter.page.NotDone() {
383		return Invoice{}
384	}
385	return iter.page.Values()[iter.i]
386}
387
388// IsEmpty returns true if the ListResult contains no values.
389func (ilr InvoicesListResult) IsEmpty() bool {
390	return ilr.Value == nil || len(*ilr.Value) == 0
391}
392
393// invoicesListResultPreparer prepares a request to retrieve the next set of results.
394// It returns nil if no more results exist.
395func (ilr InvoicesListResult) invoicesListResultPreparer() (*http.Request, error) {
396	if ilr.NextLink == nil || len(to.String(ilr.NextLink)) < 1 {
397		return nil, nil
398	}
399	return autorest.Prepare(&http.Request{},
400		autorest.AsJSON(),
401		autorest.AsGet(),
402		autorest.WithBaseURL(to.String(ilr.NextLink)))
403}
404
405// InvoicesListResultPage contains a page of Invoice values.
406type InvoicesListResultPage struct {
407	fn  func(InvoicesListResult) (InvoicesListResult, error)
408	ilr InvoicesListResult
409}
410
411// Next advances to the next page of values.  If there was an error making
412// the request the page does not advance and the error is returned.
413func (page *InvoicesListResultPage) Next() error {
414	next, err := page.fn(page.ilr)
415	if err != nil {
416		return err
417	}
418	page.ilr = next
419	return nil
420}
421
422// NotDone returns true if the page enumeration should be started or is not yet complete.
423func (page InvoicesListResultPage) NotDone() bool {
424	return !page.ilr.IsEmpty()
425}
426
427// Response returns the raw server response from the last page request.
428func (page InvoicesListResultPage) Response() InvoicesListResult {
429	return page.ilr
430}
431
432// Values returns the slice of values for the current page or nil if there are no values.
433func (page InvoicesListResultPage) Values() []Invoice {
434	if page.ilr.IsEmpty() {
435		return nil
436	}
437	return *page.ilr.Value
438}
439
440// Operation a Billing REST API operation.
441type Operation struct {
442	// Name - Operation name: {provider}/{resource}/{operation}.
443	Name *string `json:"name,omitempty"`
444	// Display - The object that represents the operation.
445	Display *OperationDisplay `json:"display,omitempty"`
446}
447
448// OperationDisplay the object that represents the operation.
449type OperationDisplay struct {
450	// Provider - Service provider: Microsoft.Billing.
451	Provider *string `json:"provider,omitempty"`
452	// Resource - Resource on which the operation is performed: Invoice, etc.
453	Resource *string `json:"resource,omitempty"`
454	// Operation - Operation type: Read, write, delete, etc.
455	Operation *string `json:"operation,omitempty"`
456}
457
458// OperationListResult result listing billing operations. It contains a list of operations and a URL link to get
459// the next set of results.
460type OperationListResult struct {
461	autorest.Response `json:"-"`
462	// Value - List of billing operations supported by the Microsoft.Billing resource provider.
463	Value *[]Operation `json:"value,omitempty"`
464	// NextLink - URL to get the next set of operation list results if there are any.
465	NextLink *string `json:"nextLink,omitempty"`
466}
467
468// OperationListResultIterator provides access to a complete listing of Operation values.
469type OperationListResultIterator struct {
470	i    int
471	page OperationListResultPage
472}
473
474// Next advances to the next value.  If there was an error making
475// the request the iterator does not advance and the error is returned.
476func (iter *OperationListResultIterator) Next() error {
477	iter.i++
478	if iter.i < len(iter.page.Values()) {
479		return nil
480	}
481	err := iter.page.Next()
482	if err != nil {
483		iter.i--
484		return err
485	}
486	iter.i = 0
487	return nil
488}
489
490// NotDone returns true if the enumeration should be started or is not yet complete.
491func (iter OperationListResultIterator) NotDone() bool {
492	return iter.page.NotDone() && iter.i < len(iter.page.Values())
493}
494
495// Response returns the raw server response from the last page request.
496func (iter OperationListResultIterator) Response() OperationListResult {
497	return iter.page.Response()
498}
499
500// Value returns the current value or a zero-initialized value if the
501// iterator has advanced beyond the end of the collection.
502func (iter OperationListResultIterator) Value() Operation {
503	if !iter.page.NotDone() {
504		return Operation{}
505	}
506	return iter.page.Values()[iter.i]
507}
508
509// IsEmpty returns true if the ListResult contains no values.
510func (olr OperationListResult) IsEmpty() bool {
511	return olr.Value == nil || len(*olr.Value) == 0
512}
513
514// operationListResultPreparer prepares a request to retrieve the next set of results.
515// It returns nil if no more results exist.
516func (olr OperationListResult) operationListResultPreparer() (*http.Request, error) {
517	if olr.NextLink == nil || len(to.String(olr.NextLink)) < 1 {
518		return nil, nil
519	}
520	return autorest.Prepare(&http.Request{},
521		autorest.AsJSON(),
522		autorest.AsGet(),
523		autorest.WithBaseURL(to.String(olr.NextLink)))
524}
525
526// OperationListResultPage contains a page of Operation values.
527type OperationListResultPage struct {
528	fn  func(OperationListResult) (OperationListResult, error)
529	olr OperationListResult
530}
531
532// Next advances to the next page of values.  If there was an error making
533// the request the page does not advance and the error is returned.
534func (page *OperationListResultPage) Next() error {
535	next, err := page.fn(page.olr)
536	if err != nil {
537		return err
538	}
539	page.olr = next
540	return nil
541}
542
543// NotDone returns true if the page enumeration should be started or is not yet complete.
544func (page OperationListResultPage) NotDone() bool {
545	return !page.olr.IsEmpty()
546}
547
548// Response returns the raw server response from the last page request.
549func (page OperationListResultPage) Response() OperationListResult {
550	return page.olr
551}
552
553// Values returns the slice of values for the current page or nil if there are no values.
554func (page OperationListResultPage) Values() []Operation {
555	if page.olr.IsEmpty() {
556		return nil
557	}
558	return *page.olr.Value
559}
560
561// Period a billing period resource.
562type Period struct {
563	autorest.Response `json:"-"`
564	// PeriodProperties - A billing period.
565	*PeriodProperties `json:"properties,omitempty"`
566	// ID - Resource Id.
567	ID *string `json:"id,omitempty"`
568	// Name - Resource name.
569	Name *string `json:"name,omitempty"`
570	// Type - Resource type.
571	Type *string `json:"type,omitempty"`
572}
573
574// MarshalJSON is the custom marshaler for Period.
575func (p Period) MarshalJSON() ([]byte, error) {
576	objectMap := make(map[string]interface{})
577	if p.PeriodProperties != nil {
578		objectMap["properties"] = p.PeriodProperties
579	}
580	if p.ID != nil {
581		objectMap["id"] = p.ID
582	}
583	if p.Name != nil {
584		objectMap["name"] = p.Name
585	}
586	if p.Type != nil {
587		objectMap["type"] = p.Type
588	}
589	return json.Marshal(objectMap)
590}
591
592// UnmarshalJSON is the custom unmarshaler for Period struct.
593func (p *Period) UnmarshalJSON(body []byte) error {
594	var m map[string]*json.RawMessage
595	err := json.Unmarshal(body, &m)
596	if err != nil {
597		return err
598	}
599	for k, v := range m {
600		switch k {
601		case "properties":
602			if v != nil {
603				var periodProperties PeriodProperties
604				err = json.Unmarshal(*v, &periodProperties)
605				if err != nil {
606					return err
607				}
608				p.PeriodProperties = &periodProperties
609			}
610		case "id":
611			if v != nil {
612				var ID string
613				err = json.Unmarshal(*v, &ID)
614				if err != nil {
615					return err
616				}
617				p.ID = &ID
618			}
619		case "name":
620			if v != nil {
621				var name string
622				err = json.Unmarshal(*v, &name)
623				if err != nil {
624					return err
625				}
626				p.Name = &name
627			}
628		case "type":
629			if v != nil {
630				var typeVar string
631				err = json.Unmarshal(*v, &typeVar)
632				if err != nil {
633					return err
634				}
635				p.Type = &typeVar
636			}
637		}
638	}
639
640	return nil
641}
642
643// PeriodProperties the properties of the billing period.
644type PeriodProperties struct {
645	// BillingPeriodStartDate - The start of the date range covered by the billing period.
646	BillingPeriodStartDate *date.Date `json:"billingPeriodStartDate,omitempty"`
647	// BillingPeriodEndDate - The end of the date range covered by the billing period.
648	BillingPeriodEndDate *date.Date `json:"billingPeriodEndDate,omitempty"`
649	// InvoiceIds - Array of invoice ids that associated with.
650	InvoiceIds *[]string `json:"invoiceIds,omitempty"`
651}
652
653// PeriodsListResult result of listing billing periods. It contains a list of available billing periods in reverse
654// chronological order.
655type PeriodsListResult struct {
656	autorest.Response `json:"-"`
657	// Value - The list of billing periods.
658	Value *[]Period `json:"value,omitempty"`
659	// NextLink - The link (url) to the next page of results.
660	NextLink *string `json:"nextLink,omitempty"`
661}
662
663// PeriodsListResultIterator provides access to a complete listing of Period values.
664type PeriodsListResultIterator struct {
665	i    int
666	page PeriodsListResultPage
667}
668
669// Next advances to the next value.  If there was an error making
670// the request the iterator does not advance and the error is returned.
671func (iter *PeriodsListResultIterator) Next() error {
672	iter.i++
673	if iter.i < len(iter.page.Values()) {
674		return nil
675	}
676	err := iter.page.Next()
677	if err != nil {
678		iter.i--
679		return err
680	}
681	iter.i = 0
682	return nil
683}
684
685// NotDone returns true if the enumeration should be started or is not yet complete.
686func (iter PeriodsListResultIterator) NotDone() bool {
687	return iter.page.NotDone() && iter.i < len(iter.page.Values())
688}
689
690// Response returns the raw server response from the last page request.
691func (iter PeriodsListResultIterator) Response() PeriodsListResult {
692	return iter.page.Response()
693}
694
695// Value returns the current value or a zero-initialized value if the
696// iterator has advanced beyond the end of the collection.
697func (iter PeriodsListResultIterator) Value() Period {
698	if !iter.page.NotDone() {
699		return Period{}
700	}
701	return iter.page.Values()[iter.i]
702}
703
704// IsEmpty returns true if the ListResult contains no values.
705func (plr PeriodsListResult) IsEmpty() bool {
706	return plr.Value == nil || len(*plr.Value) == 0
707}
708
709// periodsListResultPreparer prepares a request to retrieve the next set of results.
710// It returns nil if no more results exist.
711func (plr PeriodsListResult) periodsListResultPreparer() (*http.Request, error) {
712	if plr.NextLink == nil || len(to.String(plr.NextLink)) < 1 {
713		return nil, nil
714	}
715	return autorest.Prepare(&http.Request{},
716		autorest.AsJSON(),
717		autorest.AsGet(),
718		autorest.WithBaseURL(to.String(plr.NextLink)))
719}
720
721// PeriodsListResultPage contains a page of Period values.
722type PeriodsListResultPage struct {
723	fn  func(PeriodsListResult) (PeriodsListResult, error)
724	plr PeriodsListResult
725}
726
727// Next advances to the next page of values.  If there was an error making
728// the request the page does not advance and the error is returned.
729func (page *PeriodsListResultPage) Next() error {
730	next, err := page.fn(page.plr)
731	if err != nil {
732		return err
733	}
734	page.plr = next
735	return nil
736}
737
738// NotDone returns true if the page enumeration should be started or is not yet complete.
739func (page PeriodsListResultPage) NotDone() bool {
740	return !page.plr.IsEmpty()
741}
742
743// Response returns the raw server response from the last page request.
744func (page PeriodsListResultPage) Response() PeriodsListResult {
745	return page.plr
746}
747
748// Values returns the slice of values for the current page or nil if there are no values.
749func (page PeriodsListResultPage) Values() []Period {
750	if page.plr.IsEmpty() {
751		return nil
752	}
753	return *page.plr.Value
754}
755
756// Resource the Resource model definition.
757type Resource struct {
758	// ID - Resource Id.
759	ID *string `json:"id,omitempty"`
760	// Name - Resource name.
761	Name *string `json:"name,omitempty"`
762	// Type - Resource type.
763	Type *string `json:"type,omitempty"`
764}
765