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