1 package policy
2
3
4
5
6
7
8
9 import (
10 "context"
11 "encoding/json"
12 "github.com/Azure/go-autorest/autorest"
13 "github.com/Azure/go-autorest/autorest/to"
14 "github.com/Azure/go-autorest/tracing"
15 "net/http"
16 )
17
18
19 const fqdn = "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2019-06-01/policy"
20
21
22 type Assignment struct {
23 autorest.Response `json:"-"`
24
25 *AssignmentProperties `json:"properties,omitempty"`
26
27 ID *string `json:"id,omitempty"`
28
29 Type *string `json:"type,omitempty"`
30
31 Name *string `json:"name,omitempty"`
32
33 Sku *Sku `json:"sku,omitempty"`
34
35 Location *string `json:"location,omitempty"`
36
37 Identity *Identity `json:"identity,omitempty"`
38 }
39
40
41 func (a Assignment) MarshalJSON() ([]byte, error) {
42 objectMap := make(map[string]interface{})
43 if a.AssignmentProperties != nil {
44 objectMap["properties"] = a.AssignmentProperties
45 }
46 if a.Sku != nil {
47 objectMap["sku"] = a.Sku
48 }
49 if a.Location != nil {
50 objectMap["location"] = a.Location
51 }
52 if a.Identity != nil {
53 objectMap["identity"] = a.Identity
54 }
55 return json.Marshal(objectMap)
56 }
57
58
59 func (a *Assignment) UnmarshalJSON(body []byte) error {
60 var m map[string]*json.RawMessage
61 err := json.Unmarshal(body, &m)
62 if err != nil {
63 return err
64 }
65 for k, v := range m {
66 switch k {
67 case "properties":
68 if v != nil {
69 var assignmentProperties AssignmentProperties
70 err = json.Unmarshal(*v, &assignmentProperties)
71 if err != nil {
72 return err
73 }
74 a.AssignmentProperties = &assignmentProperties
75 }
76 case "id":
77 if v != nil {
78 var ID string
79 err = json.Unmarshal(*v, &ID)
80 if err != nil {
81 return err
82 }
83 a.ID = &ID
84 }
85 case "type":
86 if v != nil {
87 var typeVar string
88 err = json.Unmarshal(*v, &typeVar)
89 if err != nil {
90 return err
91 }
92 a.Type = &typeVar
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 a.Name = &name
102 }
103 case "sku":
104 if v != nil {
105 var sku Sku
106 err = json.Unmarshal(*v, &sku)
107 if err != nil {
108 return err
109 }
110 a.Sku = &sku
111 }
112 case "location":
113 if v != nil {
114 var location string
115 err = json.Unmarshal(*v, &location)
116 if err != nil {
117 return err
118 }
119 a.Location = &location
120 }
121 case "identity":
122 if v != nil {
123 var identity Identity
124 err = json.Unmarshal(*v, &identity)
125 if err != nil {
126 return err
127 }
128 a.Identity = &identity
129 }
130 }
131 }
132
133 return nil
134 }
135
136
137 type AssignmentListResult struct {
138 autorest.Response `json:"-"`
139
140 Value *[]Assignment `json:"value,omitempty"`
141
142 NextLink *string `json:"nextLink,omitempty"`
143 }
144
145
146 type AssignmentListResultIterator struct {
147 i int
148 page AssignmentListResultPage
149 }
150
151
152
153 func (iter *AssignmentListResultIterator) NextWithContext(ctx context.Context) (err error) {
154 if tracing.IsEnabled() {
155 ctx = tracing.StartSpan(ctx, fqdn+"/AssignmentListResultIterator.NextWithContext")
156 defer func() {
157 sc := -1
158 if iter.Response().Response.Response != nil {
159 sc = iter.Response().Response.Response.StatusCode
160 }
161 tracing.EndSpan(ctx, sc, err)
162 }()
163 }
164 iter.i++
165 if iter.i < len(iter.page.Values()) {
166 return nil
167 }
168 err = iter.page.NextWithContext(ctx)
169 if err != nil {
170 iter.i--
171 return err
172 }
173 iter.i = 0
174 return nil
175 }
176
177
178
179
180 func (iter *AssignmentListResultIterator) Next() error {
181 return iter.NextWithContext(context.Background())
182 }
183
184
185 func (iter AssignmentListResultIterator) NotDone() bool {
186 return iter.page.NotDone() && iter.i < len(iter.page.Values())
187 }
188
189
190 func (iter AssignmentListResultIterator) Response() AssignmentListResult {
191 return iter.page.Response()
192 }
193
194
195
196 func (iter AssignmentListResultIterator) Value() Assignment {
197 if !iter.page.NotDone() {
198 return Assignment{}
199 }
200 return iter.page.Values()[iter.i]
201 }
202
203
204 func NewAssignmentListResultIterator(page AssignmentListResultPage) AssignmentListResultIterator {
205 return AssignmentListResultIterator{page: page}
206 }
207
208
209 func (alr AssignmentListResult) IsEmpty() bool {
210 return alr.Value == nil || len(*alr.Value) == 0
211 }
212
213
214 func (alr AssignmentListResult) hasNextLink() bool {
215 return alr.NextLink != nil && len(*alr.NextLink) != 0
216 }
217
218
219
220 func (alr AssignmentListResult) assignmentListResultPreparer(ctx context.Context) (*http.Request, error) {
221 if !alr.hasNextLink() {
222 return nil, nil
223 }
224 return autorest.Prepare((&http.Request{}).WithContext(ctx),
225 autorest.AsJSON(),
226 autorest.AsGet(),
227 autorest.WithBaseURL(to.String(alr.NextLink)))
228 }
229
230
231 type AssignmentListResultPage struct {
232 fn func(context.Context, AssignmentListResult) (AssignmentListResult, error)
233 alr AssignmentListResult
234 }
235
236
237
238 func (page *AssignmentListResultPage) NextWithContext(ctx context.Context) (err error) {
239 if tracing.IsEnabled() {
240 ctx = tracing.StartSpan(ctx, fqdn+"/AssignmentListResultPage.NextWithContext")
241 defer func() {
242 sc := -1
243 if page.Response().Response.Response != nil {
244 sc = page.Response().Response.Response.StatusCode
245 }
246 tracing.EndSpan(ctx, sc, err)
247 }()
248 }
249 for {
250 next, err := page.fn(ctx, page.alr)
251 if err != nil {
252 return err
253 }
254 page.alr = next
255 if !next.hasNextLink() || !next.IsEmpty() {
256 break
257 }
258 }
259 return nil
260 }
261
262
263
264
265 func (page *AssignmentListResultPage) Next() error {
266 return page.NextWithContext(context.Background())
267 }
268
269
270 func (page AssignmentListResultPage) NotDone() bool {
271 return !page.alr.IsEmpty()
272 }
273
274
275 func (page AssignmentListResultPage) Response() AssignmentListResult {
276 return page.alr
277 }
278
279
280 func (page AssignmentListResultPage) Values() []Assignment {
281 if page.alr.IsEmpty() {
282 return nil
283 }
284 return *page.alr.Value
285 }
286
287
288 func NewAssignmentListResultPage(cur AssignmentListResult, getNextPage func(context.Context, AssignmentListResult) (AssignmentListResult, error)) AssignmentListResultPage {
289 return AssignmentListResultPage{
290 fn: getNextPage,
291 alr: cur,
292 }
293 }
294
295
296 type AssignmentProperties struct {
297
298 DisplayName *string `json:"displayName,omitempty"`
299
300 PolicyDefinitionID *string `json:"policyDefinitionId,omitempty"`
301
302 Scope *string `json:"scope,omitempty"`
303
304 NotScopes *[]string `json:"notScopes,omitempty"`
305
306 Parameters interface{} `json:"parameters,omitempty"`
307
308 Description *string `json:"description,omitempty"`
309
310 Metadata interface{} `json:"metadata,omitempty"`
311
312 EnforcementMode EnforcementMode `json:"enforcementMode,omitempty"`
313 }
314
315
316 type Definition struct {
317 autorest.Response `json:"-"`
318
319 *DefinitionProperties `json:"properties,omitempty"`
320
321 ID *string `json:"id,omitempty"`
322
323 Name *string `json:"name,omitempty"`
324
325 Type *string `json:"type,omitempty"`
326 }
327
328
329 func (d Definition) MarshalJSON() ([]byte, error) {
330 objectMap := make(map[string]interface{})
331 if d.DefinitionProperties != nil {
332 objectMap["properties"] = d.DefinitionProperties
333 }
334 return json.Marshal(objectMap)
335 }
336
337
338 func (d *Definition) UnmarshalJSON(body []byte) error {
339 var m map[string]*json.RawMessage
340 err := json.Unmarshal(body, &m)
341 if err != nil {
342 return err
343 }
344 for k, v := range m {
345 switch k {
346 case "properties":
347 if v != nil {
348 var definitionProperties DefinitionProperties
349 err = json.Unmarshal(*v, &definitionProperties)
350 if err != nil {
351 return err
352 }
353 d.DefinitionProperties = &definitionProperties
354 }
355 case "id":
356 if v != nil {
357 var ID string
358 err = json.Unmarshal(*v, &ID)
359 if err != nil {
360 return err
361 }
362 d.ID = &ID
363 }
364 case "name":
365 if v != nil {
366 var name string
367 err = json.Unmarshal(*v, &name)
368 if err != nil {
369 return err
370 }
371 d.Name = &name
372 }
373 case "type":
374 if v != nil {
375 var typeVar string
376 err = json.Unmarshal(*v, &typeVar)
377 if err != nil {
378 return err
379 }
380 d.Type = &typeVar
381 }
382 }
383 }
384
385 return nil
386 }
387
388
389 type DefinitionListResult struct {
390 autorest.Response `json:"-"`
391
392 Value *[]Definition `json:"value,omitempty"`
393
394 NextLink *string `json:"nextLink,omitempty"`
395 }
396
397
398 type DefinitionListResultIterator struct {
399 i int
400 page DefinitionListResultPage
401 }
402
403
404
405 func (iter *DefinitionListResultIterator) NextWithContext(ctx context.Context) (err error) {
406 if tracing.IsEnabled() {
407 ctx = tracing.StartSpan(ctx, fqdn+"/DefinitionListResultIterator.NextWithContext")
408 defer func() {
409 sc := -1
410 if iter.Response().Response.Response != nil {
411 sc = iter.Response().Response.Response.StatusCode
412 }
413 tracing.EndSpan(ctx, sc, err)
414 }()
415 }
416 iter.i++
417 if iter.i < len(iter.page.Values()) {
418 return nil
419 }
420 err = iter.page.NextWithContext(ctx)
421 if err != nil {
422 iter.i--
423 return err
424 }
425 iter.i = 0
426 return nil
427 }
428
429
430
431
432 func (iter *DefinitionListResultIterator) Next() error {
433 return iter.NextWithContext(context.Background())
434 }
435
436
437 func (iter DefinitionListResultIterator) NotDone() bool {
438 return iter.page.NotDone() && iter.i < len(iter.page.Values())
439 }
440
441
442 func (iter DefinitionListResultIterator) Response() DefinitionListResult {
443 return iter.page.Response()
444 }
445
446
447
448 func (iter DefinitionListResultIterator) Value() Definition {
449 if !iter.page.NotDone() {
450 return Definition{}
451 }
452 return iter.page.Values()[iter.i]
453 }
454
455
456 func NewDefinitionListResultIterator(page DefinitionListResultPage) DefinitionListResultIterator {
457 return DefinitionListResultIterator{page: page}
458 }
459
460
461 func (dlr DefinitionListResult) IsEmpty() bool {
462 return dlr.Value == nil || len(*dlr.Value) == 0
463 }
464
465
466 func (dlr DefinitionListResult) hasNextLink() bool {
467 return dlr.NextLink != nil && len(*dlr.NextLink) != 0
468 }
469
470
471
472 func (dlr DefinitionListResult) definitionListResultPreparer(ctx context.Context) (*http.Request, error) {
473 if !dlr.hasNextLink() {
474 return nil, nil
475 }
476 return autorest.Prepare((&http.Request{}).WithContext(ctx),
477 autorest.AsJSON(),
478 autorest.AsGet(),
479 autorest.WithBaseURL(to.String(dlr.NextLink)))
480 }
481
482
483 type DefinitionListResultPage struct {
484 fn func(context.Context, DefinitionListResult) (DefinitionListResult, error)
485 dlr DefinitionListResult
486 }
487
488
489
490 func (page *DefinitionListResultPage) NextWithContext(ctx context.Context) (err error) {
491 if tracing.IsEnabled() {
492 ctx = tracing.StartSpan(ctx, fqdn+"/DefinitionListResultPage.NextWithContext")
493 defer func() {
494 sc := -1
495 if page.Response().Response.Response != nil {
496 sc = page.Response().Response.Response.StatusCode
497 }
498 tracing.EndSpan(ctx, sc, err)
499 }()
500 }
501 for {
502 next, err := page.fn(ctx, page.dlr)
503 if err != nil {
504 return err
505 }
506 page.dlr = next
507 if !next.hasNextLink() || !next.IsEmpty() {
508 break
509 }
510 }
511 return nil
512 }
513
514
515
516
517 func (page *DefinitionListResultPage) Next() error {
518 return page.NextWithContext(context.Background())
519 }
520
521
522 func (page DefinitionListResultPage) NotDone() bool {
523 return !page.dlr.IsEmpty()
524 }
525
526
527 func (page DefinitionListResultPage) Response() DefinitionListResult {
528 return page.dlr
529 }
530
531
532 func (page DefinitionListResultPage) Values() []Definition {
533 if page.dlr.IsEmpty() {
534 return nil
535 }
536 return *page.dlr.Value
537 }
538
539
540 func NewDefinitionListResultPage(cur DefinitionListResult, getNextPage func(context.Context, DefinitionListResult) (DefinitionListResult, error)) DefinitionListResultPage {
541 return DefinitionListResultPage{
542 fn: getNextPage,
543 dlr: cur,
544 }
545 }
546
547
548 type DefinitionProperties struct {
549
550 PolicyType Type `json:"policyType,omitempty"`
551
552 Mode *string `json:"mode,omitempty"`
553
554 DisplayName *string `json:"displayName,omitempty"`
555
556 Description *string `json:"description,omitempty"`
557
558 PolicyRule interface{} `json:"policyRule,omitempty"`
559
560 Metadata interface{} `json:"metadata,omitempty"`
561
562 Parameters interface{} `json:"parameters,omitempty"`
563 }
564
565
566 type DefinitionReference struct {
567
568 PolicyDefinitionID *string `json:"policyDefinitionId,omitempty"`
569
570 Parameters interface{} `json:"parameters,omitempty"`
571 }
572
573
574
575 type ErrorResponse struct {
576
577 HTTPStatus *string `json:"httpStatus,omitempty"`
578
579 ErrorCode *string `json:"errorCode,omitempty"`
580
581 ErrorMessage *string `json:"errorMessage,omitempty"`
582 }
583
584
585 type Identity struct {
586
587 PrincipalID *string `json:"principalId,omitempty"`
588
589 TenantID *string `json:"tenantId,omitempty"`
590
591 Type ResourceIdentityType `json:"type,omitempty"`
592 }
593
594
595 func (i Identity) MarshalJSON() ([]byte, error) {
596 objectMap := make(map[string]interface{})
597 if i.Type != "" {
598 objectMap["type"] = i.Type
599 }
600 return json.Marshal(objectMap)
601 }
602
603
604 type SetDefinition struct {
605 autorest.Response `json:"-"`
606
607 *SetDefinitionProperties `json:"properties,omitempty"`
608
609 ID *string `json:"id,omitempty"`
610
611 Name *string `json:"name,omitempty"`
612
613 Type *string `json:"type,omitempty"`
614 }
615
616
617 func (sd SetDefinition) MarshalJSON() ([]byte, error) {
618 objectMap := make(map[string]interface{})
619 if sd.SetDefinitionProperties != nil {
620 objectMap["properties"] = sd.SetDefinitionProperties
621 }
622 return json.Marshal(objectMap)
623 }
624
625
626 func (sd *SetDefinition) UnmarshalJSON(body []byte) error {
627 var m map[string]*json.RawMessage
628 err := json.Unmarshal(body, &m)
629 if err != nil {
630 return err
631 }
632 for k, v := range m {
633 switch k {
634 case "properties":
635 if v != nil {
636 var setDefinitionProperties SetDefinitionProperties
637 err = json.Unmarshal(*v, &setDefinitionProperties)
638 if err != nil {
639 return err
640 }
641 sd.SetDefinitionProperties = &setDefinitionProperties
642 }
643 case "id":
644 if v != nil {
645 var ID string
646 err = json.Unmarshal(*v, &ID)
647 if err != nil {
648 return err
649 }
650 sd.ID = &ID
651 }
652 case "name":
653 if v != nil {
654 var name string
655 err = json.Unmarshal(*v, &name)
656 if err != nil {
657 return err
658 }
659 sd.Name = &name
660 }
661 case "type":
662 if v != nil {
663 var typeVar string
664 err = json.Unmarshal(*v, &typeVar)
665 if err != nil {
666 return err
667 }
668 sd.Type = &typeVar
669 }
670 }
671 }
672
673 return nil
674 }
675
676
677 type SetDefinitionListResult struct {
678 autorest.Response `json:"-"`
679
680 Value *[]SetDefinition `json:"value,omitempty"`
681
682 NextLink *string `json:"nextLink,omitempty"`
683 }
684
685
686 type SetDefinitionListResultIterator struct {
687 i int
688 page SetDefinitionListResultPage
689 }
690
691
692
693 func (iter *SetDefinitionListResultIterator) NextWithContext(ctx context.Context) (err error) {
694 if tracing.IsEnabled() {
695 ctx = tracing.StartSpan(ctx, fqdn+"/SetDefinitionListResultIterator.NextWithContext")
696 defer func() {
697 sc := -1
698 if iter.Response().Response.Response != nil {
699 sc = iter.Response().Response.Response.StatusCode
700 }
701 tracing.EndSpan(ctx, sc, err)
702 }()
703 }
704 iter.i++
705 if iter.i < len(iter.page.Values()) {
706 return nil
707 }
708 err = iter.page.NextWithContext(ctx)
709 if err != nil {
710 iter.i--
711 return err
712 }
713 iter.i = 0
714 return nil
715 }
716
717
718
719
720 func (iter *SetDefinitionListResultIterator) Next() error {
721 return iter.NextWithContext(context.Background())
722 }
723
724
725 func (iter SetDefinitionListResultIterator) NotDone() bool {
726 return iter.page.NotDone() && iter.i < len(iter.page.Values())
727 }
728
729
730 func (iter SetDefinitionListResultIterator) Response() SetDefinitionListResult {
731 return iter.page.Response()
732 }
733
734
735
736 func (iter SetDefinitionListResultIterator) Value() SetDefinition {
737 if !iter.page.NotDone() {
738 return SetDefinition{}
739 }
740 return iter.page.Values()[iter.i]
741 }
742
743
744 func NewSetDefinitionListResultIterator(page SetDefinitionListResultPage) SetDefinitionListResultIterator {
745 return SetDefinitionListResultIterator{page: page}
746 }
747
748
749 func (sdlr SetDefinitionListResult) IsEmpty() bool {
750 return sdlr.Value == nil || len(*sdlr.Value) == 0
751 }
752
753
754 func (sdlr SetDefinitionListResult) hasNextLink() bool {
755 return sdlr.NextLink != nil && len(*sdlr.NextLink) != 0
756 }
757
758
759
760 func (sdlr SetDefinitionListResult) setDefinitionListResultPreparer(ctx context.Context) (*http.Request, error) {
761 if !sdlr.hasNextLink() {
762 return nil, nil
763 }
764 return autorest.Prepare((&http.Request{}).WithContext(ctx),
765 autorest.AsJSON(),
766 autorest.AsGet(),
767 autorest.WithBaseURL(to.String(sdlr.NextLink)))
768 }
769
770
771 type SetDefinitionListResultPage struct {
772 fn func(context.Context, SetDefinitionListResult) (SetDefinitionListResult, error)
773 sdlr SetDefinitionListResult
774 }
775
776
777
778 func (page *SetDefinitionListResultPage) NextWithContext(ctx context.Context) (err error) {
779 if tracing.IsEnabled() {
780 ctx = tracing.StartSpan(ctx, fqdn+"/SetDefinitionListResultPage.NextWithContext")
781 defer func() {
782 sc := -1
783 if page.Response().Response.Response != nil {
784 sc = page.Response().Response.Response.StatusCode
785 }
786 tracing.EndSpan(ctx, sc, err)
787 }()
788 }
789 for {
790 next, err := page.fn(ctx, page.sdlr)
791 if err != nil {
792 return err
793 }
794 page.sdlr = next
795 if !next.hasNextLink() || !next.IsEmpty() {
796 break
797 }
798 }
799 return nil
800 }
801
802
803
804
805 func (page *SetDefinitionListResultPage) Next() error {
806 return page.NextWithContext(context.Background())
807 }
808
809
810 func (page SetDefinitionListResultPage) NotDone() bool {
811 return !page.sdlr.IsEmpty()
812 }
813
814
815 func (page SetDefinitionListResultPage) Response() SetDefinitionListResult {
816 return page.sdlr
817 }
818
819
820 func (page SetDefinitionListResultPage) Values() []SetDefinition {
821 if page.sdlr.IsEmpty() {
822 return nil
823 }
824 return *page.sdlr.Value
825 }
826
827
828 func NewSetDefinitionListResultPage(cur SetDefinitionListResult, getNextPage func(context.Context, SetDefinitionListResult) (SetDefinitionListResult, error)) SetDefinitionListResultPage {
829 return SetDefinitionListResultPage{
830 fn: getNextPage,
831 sdlr: cur,
832 }
833 }
834
835
836 type SetDefinitionProperties struct {
837
838 PolicyType Type `json:"policyType,omitempty"`
839
840 DisplayName *string `json:"displayName,omitempty"`
841
842 Description *string `json:"description,omitempty"`
843
844 Metadata interface{} `json:"metadata,omitempty"`
845
846 Parameters interface{} `json:"parameters,omitempty"`
847
848 PolicyDefinitions *[]DefinitionReference `json:"policyDefinitions,omitempty"`
849 }
850
851
852 type Sku struct {
853
854 Name *string `json:"name,omitempty"`
855
856 Tier *string `json:"tier,omitempty"`
857 }
858
View as plain text