1package policyinsights
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)
24
25// The package's fully qualified name.
26const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/policyinsights/mgmt/2017-08-09-preview/policyinsights"
27
28// PolicyStatesResource enumerates the values for policy states resource.
29type PolicyStatesResource string
30
31const (
32	// Default ...
33	Default PolicyStatesResource = "default"
34	// Latest ...
35	Latest PolicyStatesResource = "latest"
36)
37
38// PossiblePolicyStatesResourceValues returns an array of possible values for the PolicyStatesResource const type.
39func PossiblePolicyStatesResourceValues() []PolicyStatesResource {
40	return []PolicyStatesResource{Default, Latest}
41}
42
43// Column column definition.
44type Column struct {
45	// Ordinal - Ordinal value of the column in a record.
46	Ordinal *int32 `json:"ordinal,omitempty"`
47	// Name - Name of the column.
48	Name *string `json:"name,omitempty"`
49	// DataType - Data type of the column.
50	DataType *string `json:"dataType,omitempty"`
51}
52
53// Operation operation definition.
54type Operation struct {
55	// Name - Operation name.
56	Name *string `json:"name,omitempty"`
57	// Display - Display metadata associated with the operation.
58	Display *OperationDisplay `json:"display,omitempty"`
59}
60
61// OperationDisplay display metadata associated with the operation.
62type OperationDisplay struct {
63	// Provider - Resource provider name.
64	Provider *string `json:"provider,omitempty"`
65	// Resource - Resource name on which the operation is performed.
66	Resource *string `json:"resource,omitempty"`
67	// Operation - Operation name.
68	Operation *string `json:"operation,omitempty"`
69	// Description - Operation description.
70	Description *string `json:"description,omitempty"`
71}
72
73// OperationsListResults list of available operations.
74type OperationsListResults struct {
75	autorest.Response `json:"-"`
76	// Value - List of available operations.
77	Value *[]Operation `json:"value,omitempty"`
78}
79
80// PolicyEventsQueryResults query results.
81type PolicyEventsQueryResults struct {
82	autorest.Response `json:"-"`
83	// Value - Query results.
84	Value *[]PolicyEventsQueryResultsTable `json:"value,omitempty"`
85}
86
87// PolicyEventsQueryResultsTable query results table.
88type PolicyEventsQueryResultsTable struct {
89	// Metadata - Metadata about the query results.
90	Metadata *PolicyEventsQueryResultsTableMetadata `json:"metadata,omitempty"`
91	// Columns - List of columns included in query results.
92	Columns *PolicyEventsQueryResultsTableColumns `json:"columns,omitempty"`
93	// Rows - Query result rows, each representing a policy event record.
94	Rows *[][]interface{} `json:"rows,omitempty"`
95}
96
97// PolicyEventsQueryResultsTableColumns list of columns included in query results.
98type PolicyEventsQueryResultsTableColumns struct {
99	// AdditionalProperties - Unmatched properties from the message are deserialized this collection
100	AdditionalProperties map[string]interface{} `json:""`
101	// Timestamp - Timestamp for the policy event record.
102	Timestamp *Column `json:"Timestamp,omitempty"`
103	// ResourceID - Resource ID.
104	ResourceID *Column `json:"ResourceId,omitempty"`
105	// PolicyAssignmentID - Policy assignment ID.
106	PolicyAssignmentID *Column `json:"PolicyAssignmentId,omitempty"`
107	// PolicyDefinitionID - Policy definition ID.
108	PolicyDefinitionID *Column `json:"PolicyDefinitionId,omitempty"`
109	// EffectiveParameters - Effective parameters for the policy assignment.
110	EffectiveParameters *Column `json:"EffectiveParameters,omitempty"`
111	// IsCompliant - Flag which states whether the resource is compliant against the policy assignment it was evaluated against.
112	IsCompliant *Column `json:"IsCompliant,omitempty"`
113	// SubscriptionID - Subscription ID.
114	SubscriptionID *Column `json:"SubscriptionId,omitempty"`
115	// ResourceType - Resource type.
116	ResourceType *Column `json:"ResourceType,omitempty"`
117	// ResourceLocation - Resource location.
118	ResourceLocation *Column `json:"ResourceLocation,omitempty"`
119	// ResourceGroup - Resource group name.
120	ResourceGroup *Column `json:"ResourceGroup,omitempty"`
121	// ResourceTags - List of resource tags.
122	ResourceTags *Column `json:"ResourceTags,omitempty"`
123	// PolicyAssignmentName - Policy assignment name.
124	PolicyAssignmentName *Column `json:"PolicyAssignmentName,omitempty"`
125	// PolicyAssignmentOwner - Policy assignment owner.
126	PolicyAssignmentOwner *Column `json:"PolicyAssignmentOwner,omitempty"`
127	// PolicyAssignmentParameters - Policy assignment parameters.
128	PolicyAssignmentParameters *Column `json:"PolicyAssignmentParameters,omitempty"`
129	// PolicyAssignmentScope - Policy assignment scope.
130	PolicyAssignmentScope *Column `json:"PolicyAssignmentScope,omitempty"`
131	// PolicyDefinitionName - Policy definition name.
132	PolicyDefinitionName *Column `json:"PolicyDefinitionName,omitempty"`
133	// PolicyDefinitionAction - Policy definition action, i.e. effect.
134	PolicyDefinitionAction *Column `json:"PolicyDefinitionAction,omitempty"`
135	// PolicyDefinitionCategory - Policy definition category.
136	PolicyDefinitionCategory *Column `json:"PolicyDefinitionCategory,omitempty"`
137	// PolicySetDefinitionID - Policy set definition ID, if the policy assignment is for a policy set.
138	PolicySetDefinitionID *Column `json:"PolicySetDefinitionId,omitempty"`
139	// PolicySetDefinitionName - Policy set definition name, if the policy assignment is for a policy set.
140	PolicySetDefinitionName *Column `json:"PolicySetDefinitionName,omitempty"`
141	// PolicySetDefinitionOwner - Policy set definition owner, if the policy assignment is for a policy set.
142	PolicySetDefinitionOwner *Column `json:"PolicySetDefinitionOwner,omitempty"`
143	// PolicySetDefinitionCategory - Policy set definition category, if the policy assignment is for a policy set.
144	PolicySetDefinitionCategory *Column `json:"PolicySetDefinitionCategory,omitempty"`
145	// PolicySetDefinitionParameters - Policy set definition parameters, if the policy assignment is for a policy set.
146	PolicySetDefinitionParameters *Column `json:"PolicySetDefinitionParameters,omitempty"`
147	// ManagementGroupIds - Comma separated list of management group IDs, which represent the hierarchy of the management groups the resource is under.
148	ManagementGroupIds *Column `json:"ManagementGroupIds,omitempty"`
149	// PolicyDefinitionReferenceID - Reference ID for the policy definition inside the policy set, if the policy assignment is for a policy set.
150	PolicyDefinitionReferenceID *Column `json:"PolicyDefinitionReferenceId,omitempty"`
151	// TenantID - Tenant ID for the policy event record.
152	TenantID *Column `json:"TenantId,omitempty"`
153	// PrincipalOid - Principal object ID for the user who initiated the resource operation that triggered the policy event.
154	PrincipalOid *Column `json:"PrincipalOid,omitempty"`
155}
156
157// MarshalJSON is the custom marshaler for PolicyEventsQueryResultsTableColumns.
158func (peqrt PolicyEventsQueryResultsTableColumns) MarshalJSON() ([]byte, error) {
159	objectMap := make(map[string]interface{})
160	if peqrt.Timestamp != nil {
161		objectMap["Timestamp"] = peqrt.Timestamp
162	}
163	if peqrt.ResourceID != nil {
164		objectMap["ResourceId"] = peqrt.ResourceID
165	}
166	if peqrt.PolicyAssignmentID != nil {
167		objectMap["PolicyAssignmentId"] = peqrt.PolicyAssignmentID
168	}
169	if peqrt.PolicyDefinitionID != nil {
170		objectMap["PolicyDefinitionId"] = peqrt.PolicyDefinitionID
171	}
172	if peqrt.EffectiveParameters != nil {
173		objectMap["EffectiveParameters"] = peqrt.EffectiveParameters
174	}
175	if peqrt.IsCompliant != nil {
176		objectMap["IsCompliant"] = peqrt.IsCompliant
177	}
178	if peqrt.SubscriptionID != nil {
179		objectMap["SubscriptionId"] = peqrt.SubscriptionID
180	}
181	if peqrt.ResourceType != nil {
182		objectMap["ResourceType"] = peqrt.ResourceType
183	}
184	if peqrt.ResourceLocation != nil {
185		objectMap["ResourceLocation"] = peqrt.ResourceLocation
186	}
187	if peqrt.ResourceGroup != nil {
188		objectMap["ResourceGroup"] = peqrt.ResourceGroup
189	}
190	if peqrt.ResourceTags != nil {
191		objectMap["ResourceTags"] = peqrt.ResourceTags
192	}
193	if peqrt.PolicyAssignmentName != nil {
194		objectMap["PolicyAssignmentName"] = peqrt.PolicyAssignmentName
195	}
196	if peqrt.PolicyAssignmentOwner != nil {
197		objectMap["PolicyAssignmentOwner"] = peqrt.PolicyAssignmentOwner
198	}
199	if peqrt.PolicyAssignmentParameters != nil {
200		objectMap["PolicyAssignmentParameters"] = peqrt.PolicyAssignmentParameters
201	}
202	if peqrt.PolicyAssignmentScope != nil {
203		objectMap["PolicyAssignmentScope"] = peqrt.PolicyAssignmentScope
204	}
205	if peqrt.PolicyDefinitionName != nil {
206		objectMap["PolicyDefinitionName"] = peqrt.PolicyDefinitionName
207	}
208	if peqrt.PolicyDefinitionAction != nil {
209		objectMap["PolicyDefinitionAction"] = peqrt.PolicyDefinitionAction
210	}
211	if peqrt.PolicyDefinitionCategory != nil {
212		objectMap["PolicyDefinitionCategory"] = peqrt.PolicyDefinitionCategory
213	}
214	if peqrt.PolicySetDefinitionID != nil {
215		objectMap["PolicySetDefinitionId"] = peqrt.PolicySetDefinitionID
216	}
217	if peqrt.PolicySetDefinitionName != nil {
218		objectMap["PolicySetDefinitionName"] = peqrt.PolicySetDefinitionName
219	}
220	if peqrt.PolicySetDefinitionOwner != nil {
221		objectMap["PolicySetDefinitionOwner"] = peqrt.PolicySetDefinitionOwner
222	}
223	if peqrt.PolicySetDefinitionCategory != nil {
224		objectMap["PolicySetDefinitionCategory"] = peqrt.PolicySetDefinitionCategory
225	}
226	if peqrt.PolicySetDefinitionParameters != nil {
227		objectMap["PolicySetDefinitionParameters"] = peqrt.PolicySetDefinitionParameters
228	}
229	if peqrt.ManagementGroupIds != nil {
230		objectMap["ManagementGroupIds"] = peqrt.ManagementGroupIds
231	}
232	if peqrt.PolicyDefinitionReferenceID != nil {
233		objectMap["PolicyDefinitionReferenceId"] = peqrt.PolicyDefinitionReferenceID
234	}
235	if peqrt.TenantID != nil {
236		objectMap["TenantId"] = peqrt.TenantID
237	}
238	if peqrt.PrincipalOid != nil {
239		objectMap["PrincipalOid"] = peqrt.PrincipalOid
240	}
241	for k, v := range peqrt.AdditionalProperties {
242		objectMap[k] = v
243	}
244	return json.Marshal(objectMap)
245}
246
247// UnmarshalJSON is the custom unmarshaler for PolicyEventsQueryResultsTableColumns struct.
248func (peqrt *PolicyEventsQueryResultsTableColumns) UnmarshalJSON(body []byte) error {
249	var m map[string]*json.RawMessage
250	err := json.Unmarshal(body, &m)
251	if err != nil {
252		return err
253	}
254	for k, v := range m {
255		switch k {
256		default:
257			if v != nil {
258				var additionalProperties interface{}
259				err = json.Unmarshal(*v, &additionalProperties)
260				if err != nil {
261					return err
262				}
263				if peqrt.AdditionalProperties == nil {
264					peqrt.AdditionalProperties = make(map[string]interface{})
265				}
266				peqrt.AdditionalProperties[k] = additionalProperties
267			}
268		case "Timestamp":
269			if v != nil {
270				var timestamp Column
271				err = json.Unmarshal(*v, &timestamp)
272				if err != nil {
273					return err
274				}
275				peqrt.Timestamp = &timestamp
276			}
277		case "ResourceId":
278			if v != nil {
279				var resourceID Column
280				err = json.Unmarshal(*v, &resourceID)
281				if err != nil {
282					return err
283				}
284				peqrt.ResourceID = &resourceID
285			}
286		case "PolicyAssignmentId":
287			if v != nil {
288				var policyAssignmentID Column
289				err = json.Unmarshal(*v, &policyAssignmentID)
290				if err != nil {
291					return err
292				}
293				peqrt.PolicyAssignmentID = &policyAssignmentID
294			}
295		case "PolicyDefinitionId":
296			if v != nil {
297				var policyDefinitionID Column
298				err = json.Unmarshal(*v, &policyDefinitionID)
299				if err != nil {
300					return err
301				}
302				peqrt.PolicyDefinitionID = &policyDefinitionID
303			}
304		case "EffectiveParameters":
305			if v != nil {
306				var effectiveParameters Column
307				err = json.Unmarshal(*v, &effectiveParameters)
308				if err != nil {
309					return err
310				}
311				peqrt.EffectiveParameters = &effectiveParameters
312			}
313		case "IsCompliant":
314			if v != nil {
315				var isCompliant Column
316				err = json.Unmarshal(*v, &isCompliant)
317				if err != nil {
318					return err
319				}
320				peqrt.IsCompliant = &isCompliant
321			}
322		case "SubscriptionId":
323			if v != nil {
324				var subscriptionID Column
325				err = json.Unmarshal(*v, &subscriptionID)
326				if err != nil {
327					return err
328				}
329				peqrt.SubscriptionID = &subscriptionID
330			}
331		case "ResourceType":
332			if v != nil {
333				var resourceType Column
334				err = json.Unmarshal(*v, &resourceType)
335				if err != nil {
336					return err
337				}
338				peqrt.ResourceType = &resourceType
339			}
340		case "ResourceLocation":
341			if v != nil {
342				var resourceLocation Column
343				err = json.Unmarshal(*v, &resourceLocation)
344				if err != nil {
345					return err
346				}
347				peqrt.ResourceLocation = &resourceLocation
348			}
349		case "ResourceGroup":
350			if v != nil {
351				var resourceGroup Column
352				err = json.Unmarshal(*v, &resourceGroup)
353				if err != nil {
354					return err
355				}
356				peqrt.ResourceGroup = &resourceGroup
357			}
358		case "ResourceTags":
359			if v != nil {
360				var resourceTags Column
361				err = json.Unmarshal(*v, &resourceTags)
362				if err != nil {
363					return err
364				}
365				peqrt.ResourceTags = &resourceTags
366			}
367		case "PolicyAssignmentName":
368			if v != nil {
369				var policyAssignmentName Column
370				err = json.Unmarshal(*v, &policyAssignmentName)
371				if err != nil {
372					return err
373				}
374				peqrt.PolicyAssignmentName = &policyAssignmentName
375			}
376		case "PolicyAssignmentOwner":
377			if v != nil {
378				var policyAssignmentOwner Column
379				err = json.Unmarshal(*v, &policyAssignmentOwner)
380				if err != nil {
381					return err
382				}
383				peqrt.PolicyAssignmentOwner = &policyAssignmentOwner
384			}
385		case "PolicyAssignmentParameters":
386			if v != nil {
387				var policyAssignmentParameters Column
388				err = json.Unmarshal(*v, &policyAssignmentParameters)
389				if err != nil {
390					return err
391				}
392				peqrt.PolicyAssignmentParameters = &policyAssignmentParameters
393			}
394		case "PolicyAssignmentScope":
395			if v != nil {
396				var policyAssignmentScope Column
397				err = json.Unmarshal(*v, &policyAssignmentScope)
398				if err != nil {
399					return err
400				}
401				peqrt.PolicyAssignmentScope = &policyAssignmentScope
402			}
403		case "PolicyDefinitionName":
404			if v != nil {
405				var policyDefinitionName Column
406				err = json.Unmarshal(*v, &policyDefinitionName)
407				if err != nil {
408					return err
409				}
410				peqrt.PolicyDefinitionName = &policyDefinitionName
411			}
412		case "PolicyDefinitionAction":
413			if v != nil {
414				var policyDefinitionAction Column
415				err = json.Unmarshal(*v, &policyDefinitionAction)
416				if err != nil {
417					return err
418				}
419				peqrt.PolicyDefinitionAction = &policyDefinitionAction
420			}
421		case "PolicyDefinitionCategory":
422			if v != nil {
423				var policyDefinitionCategory Column
424				err = json.Unmarshal(*v, &policyDefinitionCategory)
425				if err != nil {
426					return err
427				}
428				peqrt.PolicyDefinitionCategory = &policyDefinitionCategory
429			}
430		case "PolicySetDefinitionId":
431			if v != nil {
432				var policySetDefinitionID Column
433				err = json.Unmarshal(*v, &policySetDefinitionID)
434				if err != nil {
435					return err
436				}
437				peqrt.PolicySetDefinitionID = &policySetDefinitionID
438			}
439		case "PolicySetDefinitionName":
440			if v != nil {
441				var policySetDefinitionName Column
442				err = json.Unmarshal(*v, &policySetDefinitionName)
443				if err != nil {
444					return err
445				}
446				peqrt.PolicySetDefinitionName = &policySetDefinitionName
447			}
448		case "PolicySetDefinitionOwner":
449			if v != nil {
450				var policySetDefinitionOwner Column
451				err = json.Unmarshal(*v, &policySetDefinitionOwner)
452				if err != nil {
453					return err
454				}
455				peqrt.PolicySetDefinitionOwner = &policySetDefinitionOwner
456			}
457		case "PolicySetDefinitionCategory":
458			if v != nil {
459				var policySetDefinitionCategory Column
460				err = json.Unmarshal(*v, &policySetDefinitionCategory)
461				if err != nil {
462					return err
463				}
464				peqrt.PolicySetDefinitionCategory = &policySetDefinitionCategory
465			}
466		case "PolicySetDefinitionParameters":
467			if v != nil {
468				var policySetDefinitionParameters Column
469				err = json.Unmarshal(*v, &policySetDefinitionParameters)
470				if err != nil {
471					return err
472				}
473				peqrt.PolicySetDefinitionParameters = &policySetDefinitionParameters
474			}
475		case "ManagementGroupIds":
476			if v != nil {
477				var managementGroupIds Column
478				err = json.Unmarshal(*v, &managementGroupIds)
479				if err != nil {
480					return err
481				}
482				peqrt.ManagementGroupIds = &managementGroupIds
483			}
484		case "PolicyDefinitionReferenceId":
485			if v != nil {
486				var policyDefinitionReferenceID Column
487				err = json.Unmarshal(*v, &policyDefinitionReferenceID)
488				if err != nil {
489					return err
490				}
491				peqrt.PolicyDefinitionReferenceID = &policyDefinitionReferenceID
492			}
493		case "TenantId":
494			if v != nil {
495				var tenantID Column
496				err = json.Unmarshal(*v, &tenantID)
497				if err != nil {
498					return err
499				}
500				peqrt.TenantID = &tenantID
501			}
502		case "PrincipalOid":
503			if v != nil {
504				var principalOid Column
505				err = json.Unmarshal(*v, &principalOid)
506				if err != nil {
507					return err
508				}
509				peqrt.PrincipalOid = &principalOid
510			}
511		}
512	}
513
514	return nil
515}
516
517// PolicyEventsQueryResultsTableMetadata metadata about the query results.
518type PolicyEventsQueryResultsTableMetadata struct {
519	// GeneratedQuery - Internal query generated. Used for diagnostics purposes.
520	GeneratedQuery *string `json:"generatedQuery,omitempty"`
521}
522
523// PolicyStatesQueryResults query results.
524type PolicyStatesQueryResults struct {
525	autorest.Response `json:"-"`
526	// Value - Query results.
527	Value *[]PolicyStatesQueryResultsTable `json:"value,omitempty"`
528}
529
530// PolicyStatesQueryResultsTable query results table.
531type PolicyStatesQueryResultsTable struct {
532	// Metadata - Metadata about the query results.
533	Metadata *PolicyStatesQueryResultsTableMetadata `json:"metadata,omitempty"`
534	// Columns - List of columns included in query results.
535	Columns *PolicyStatesQueryResultsTableColumns `json:"columns,omitempty"`
536	// Rows - Query result rows, each representing a policy state record.
537	Rows *[][]interface{} `json:"rows,omitempty"`
538}
539
540// PolicyStatesQueryResultsTableColumns list of columns included in query results.
541type PolicyStatesQueryResultsTableColumns struct {
542	// AdditionalProperties - Unmatched properties from the message are deserialized this collection
543	AdditionalProperties map[string]interface{} `json:""`
544	// Timestamp - Timestamp for the policy state record.
545	Timestamp *Column `json:"Timestamp,omitempty"`
546	// ResourceID - Resource ID.
547	ResourceID *Column `json:"ResourceId,omitempty"`
548	// PolicyAssignmentID - Policy assignment ID.
549	PolicyAssignmentID *Column `json:"PolicyAssignmentId,omitempty"`
550	// PolicyDefinitionID - Policy definition ID.
551	PolicyDefinitionID *Column `json:"PolicyDefinitionId,omitempty"`
552	// EffectiveParameters - Effective parameters for the policy assignment.
553	EffectiveParameters *Column `json:"EffectiveParameters,omitempty"`
554	// IsCompliant - Flag which states whether the resource is compliant against the policy assignment it was evaluated against.
555	IsCompliant *Column `json:"IsCompliant,omitempty"`
556	// SubscriptionID - Subscription ID.
557	SubscriptionID *Column `json:"SubscriptionId,omitempty"`
558	// ResourceType - Resource type.
559	ResourceType *Column `json:"ResourceType,omitempty"`
560	// ResourceLocation - Resource location.
561	ResourceLocation *Column `json:"ResourceLocation,omitempty"`
562	// ResourceGroup - Resource group name.
563	ResourceGroup *Column `json:"ResourceGroup,omitempty"`
564	// ResourceTags - List of resource tags.
565	ResourceTags *Column `json:"ResourceTags,omitempty"`
566	// PolicyAssignmentName - Policy assignment name.
567	PolicyAssignmentName *Column `json:"PolicyAssignmentName,omitempty"`
568	// PolicyAssignmentOwner - Policy assignment owner.
569	PolicyAssignmentOwner *Column `json:"PolicyAssignmentOwner,omitempty"`
570	// PolicyAssignmentParameters - Policy assignment parameters.
571	PolicyAssignmentParameters *Column `json:"PolicyAssignmentParameters,omitempty"`
572	// PolicyAssignmentScope - Policy assignment scope.
573	PolicyAssignmentScope *Column `json:"PolicyAssignmentScope,omitempty"`
574	// PolicyDefinitionName - Policy definition name.
575	PolicyDefinitionName *Column `json:"PolicyDefinitionName,omitempty"`
576	// PolicyDefinitionAction - Policy definition action, i.e. effect.
577	PolicyDefinitionAction *Column `json:"PolicyDefinitionAction,omitempty"`
578	// PolicyDefinitionCategory - Policy definition category.
579	PolicyDefinitionCategory *Column `json:"PolicyDefinitionCategory,omitempty"`
580	// PolicySetDefinitionID - Policy set definition ID, if the policy assignment is for a policy set.
581	PolicySetDefinitionID *Column `json:"PolicySetDefinitionId,omitempty"`
582	// PolicySetDefinitionName - Policy set definition name, if the policy assignment is for a policy set.
583	PolicySetDefinitionName *Column `json:"PolicySetDefinitionName,omitempty"`
584	// PolicySetDefinitionOwner - Policy set definition owner, if the policy assignment is for a policy set.
585	PolicySetDefinitionOwner *Column `json:"PolicySetDefinitionOwner,omitempty"`
586	// PolicySetDefinitionCategory - Policy set definition category, if the policy assignment is for a policy set.
587	PolicySetDefinitionCategory *Column `json:"PolicySetDefinitionCategory,omitempty"`
588	// PolicySetDefinitionParameters - Policy set definition parameters, if the policy assignment is for a policy set.
589	PolicySetDefinitionParameters *Column `json:"PolicySetDefinitionParameters,omitempty"`
590	// ManagementGroupIds - Comma separated list of management group IDs, which represent the hierarchy of the management groups the resource is under.
591	ManagementGroupIds *Column `json:"ManagementGroupIds,omitempty"`
592	// PolicyDefinitionReferenceID - Reference ID for the policy definition inside the policy set, if the policy assignment is for a policy set.
593	PolicyDefinitionReferenceID *Column `json:"PolicyDefinitionReferenceId,omitempty"`
594}
595
596// MarshalJSON is the custom marshaler for PolicyStatesQueryResultsTableColumns.
597func (psqrt PolicyStatesQueryResultsTableColumns) MarshalJSON() ([]byte, error) {
598	objectMap := make(map[string]interface{})
599	if psqrt.Timestamp != nil {
600		objectMap["Timestamp"] = psqrt.Timestamp
601	}
602	if psqrt.ResourceID != nil {
603		objectMap["ResourceId"] = psqrt.ResourceID
604	}
605	if psqrt.PolicyAssignmentID != nil {
606		objectMap["PolicyAssignmentId"] = psqrt.PolicyAssignmentID
607	}
608	if psqrt.PolicyDefinitionID != nil {
609		objectMap["PolicyDefinitionId"] = psqrt.PolicyDefinitionID
610	}
611	if psqrt.EffectiveParameters != nil {
612		objectMap["EffectiveParameters"] = psqrt.EffectiveParameters
613	}
614	if psqrt.IsCompliant != nil {
615		objectMap["IsCompliant"] = psqrt.IsCompliant
616	}
617	if psqrt.SubscriptionID != nil {
618		objectMap["SubscriptionId"] = psqrt.SubscriptionID
619	}
620	if psqrt.ResourceType != nil {
621		objectMap["ResourceType"] = psqrt.ResourceType
622	}
623	if psqrt.ResourceLocation != nil {
624		objectMap["ResourceLocation"] = psqrt.ResourceLocation
625	}
626	if psqrt.ResourceGroup != nil {
627		objectMap["ResourceGroup"] = psqrt.ResourceGroup
628	}
629	if psqrt.ResourceTags != nil {
630		objectMap["ResourceTags"] = psqrt.ResourceTags
631	}
632	if psqrt.PolicyAssignmentName != nil {
633		objectMap["PolicyAssignmentName"] = psqrt.PolicyAssignmentName
634	}
635	if psqrt.PolicyAssignmentOwner != nil {
636		objectMap["PolicyAssignmentOwner"] = psqrt.PolicyAssignmentOwner
637	}
638	if psqrt.PolicyAssignmentParameters != nil {
639		objectMap["PolicyAssignmentParameters"] = psqrt.PolicyAssignmentParameters
640	}
641	if psqrt.PolicyAssignmentScope != nil {
642		objectMap["PolicyAssignmentScope"] = psqrt.PolicyAssignmentScope
643	}
644	if psqrt.PolicyDefinitionName != nil {
645		objectMap["PolicyDefinitionName"] = psqrt.PolicyDefinitionName
646	}
647	if psqrt.PolicyDefinitionAction != nil {
648		objectMap["PolicyDefinitionAction"] = psqrt.PolicyDefinitionAction
649	}
650	if psqrt.PolicyDefinitionCategory != nil {
651		objectMap["PolicyDefinitionCategory"] = psqrt.PolicyDefinitionCategory
652	}
653	if psqrt.PolicySetDefinitionID != nil {
654		objectMap["PolicySetDefinitionId"] = psqrt.PolicySetDefinitionID
655	}
656	if psqrt.PolicySetDefinitionName != nil {
657		objectMap["PolicySetDefinitionName"] = psqrt.PolicySetDefinitionName
658	}
659	if psqrt.PolicySetDefinitionOwner != nil {
660		objectMap["PolicySetDefinitionOwner"] = psqrt.PolicySetDefinitionOwner
661	}
662	if psqrt.PolicySetDefinitionCategory != nil {
663		objectMap["PolicySetDefinitionCategory"] = psqrt.PolicySetDefinitionCategory
664	}
665	if psqrt.PolicySetDefinitionParameters != nil {
666		objectMap["PolicySetDefinitionParameters"] = psqrt.PolicySetDefinitionParameters
667	}
668	if psqrt.ManagementGroupIds != nil {
669		objectMap["ManagementGroupIds"] = psqrt.ManagementGroupIds
670	}
671	if psqrt.PolicyDefinitionReferenceID != nil {
672		objectMap["PolicyDefinitionReferenceId"] = psqrt.PolicyDefinitionReferenceID
673	}
674	for k, v := range psqrt.AdditionalProperties {
675		objectMap[k] = v
676	}
677	return json.Marshal(objectMap)
678}
679
680// UnmarshalJSON is the custom unmarshaler for PolicyStatesQueryResultsTableColumns struct.
681func (psqrt *PolicyStatesQueryResultsTableColumns) UnmarshalJSON(body []byte) error {
682	var m map[string]*json.RawMessage
683	err := json.Unmarshal(body, &m)
684	if err != nil {
685		return err
686	}
687	for k, v := range m {
688		switch k {
689		default:
690			if v != nil {
691				var additionalProperties interface{}
692				err = json.Unmarshal(*v, &additionalProperties)
693				if err != nil {
694					return err
695				}
696				if psqrt.AdditionalProperties == nil {
697					psqrt.AdditionalProperties = make(map[string]interface{})
698				}
699				psqrt.AdditionalProperties[k] = additionalProperties
700			}
701		case "Timestamp":
702			if v != nil {
703				var timestamp Column
704				err = json.Unmarshal(*v, &timestamp)
705				if err != nil {
706					return err
707				}
708				psqrt.Timestamp = &timestamp
709			}
710		case "ResourceId":
711			if v != nil {
712				var resourceID Column
713				err = json.Unmarshal(*v, &resourceID)
714				if err != nil {
715					return err
716				}
717				psqrt.ResourceID = &resourceID
718			}
719		case "PolicyAssignmentId":
720			if v != nil {
721				var policyAssignmentID Column
722				err = json.Unmarshal(*v, &policyAssignmentID)
723				if err != nil {
724					return err
725				}
726				psqrt.PolicyAssignmentID = &policyAssignmentID
727			}
728		case "PolicyDefinitionId":
729			if v != nil {
730				var policyDefinitionID Column
731				err = json.Unmarshal(*v, &policyDefinitionID)
732				if err != nil {
733					return err
734				}
735				psqrt.PolicyDefinitionID = &policyDefinitionID
736			}
737		case "EffectiveParameters":
738			if v != nil {
739				var effectiveParameters Column
740				err = json.Unmarshal(*v, &effectiveParameters)
741				if err != nil {
742					return err
743				}
744				psqrt.EffectiveParameters = &effectiveParameters
745			}
746		case "IsCompliant":
747			if v != nil {
748				var isCompliant Column
749				err = json.Unmarshal(*v, &isCompliant)
750				if err != nil {
751					return err
752				}
753				psqrt.IsCompliant = &isCompliant
754			}
755		case "SubscriptionId":
756			if v != nil {
757				var subscriptionID Column
758				err = json.Unmarshal(*v, &subscriptionID)
759				if err != nil {
760					return err
761				}
762				psqrt.SubscriptionID = &subscriptionID
763			}
764		case "ResourceType":
765			if v != nil {
766				var resourceType Column
767				err = json.Unmarshal(*v, &resourceType)
768				if err != nil {
769					return err
770				}
771				psqrt.ResourceType = &resourceType
772			}
773		case "ResourceLocation":
774			if v != nil {
775				var resourceLocation Column
776				err = json.Unmarshal(*v, &resourceLocation)
777				if err != nil {
778					return err
779				}
780				psqrt.ResourceLocation = &resourceLocation
781			}
782		case "ResourceGroup":
783			if v != nil {
784				var resourceGroup Column
785				err = json.Unmarshal(*v, &resourceGroup)
786				if err != nil {
787					return err
788				}
789				psqrt.ResourceGroup = &resourceGroup
790			}
791		case "ResourceTags":
792			if v != nil {
793				var resourceTags Column
794				err = json.Unmarshal(*v, &resourceTags)
795				if err != nil {
796					return err
797				}
798				psqrt.ResourceTags = &resourceTags
799			}
800		case "PolicyAssignmentName":
801			if v != nil {
802				var policyAssignmentName Column
803				err = json.Unmarshal(*v, &policyAssignmentName)
804				if err != nil {
805					return err
806				}
807				psqrt.PolicyAssignmentName = &policyAssignmentName
808			}
809		case "PolicyAssignmentOwner":
810			if v != nil {
811				var policyAssignmentOwner Column
812				err = json.Unmarshal(*v, &policyAssignmentOwner)
813				if err != nil {
814					return err
815				}
816				psqrt.PolicyAssignmentOwner = &policyAssignmentOwner
817			}
818		case "PolicyAssignmentParameters":
819			if v != nil {
820				var policyAssignmentParameters Column
821				err = json.Unmarshal(*v, &policyAssignmentParameters)
822				if err != nil {
823					return err
824				}
825				psqrt.PolicyAssignmentParameters = &policyAssignmentParameters
826			}
827		case "PolicyAssignmentScope":
828			if v != nil {
829				var policyAssignmentScope Column
830				err = json.Unmarshal(*v, &policyAssignmentScope)
831				if err != nil {
832					return err
833				}
834				psqrt.PolicyAssignmentScope = &policyAssignmentScope
835			}
836		case "PolicyDefinitionName":
837			if v != nil {
838				var policyDefinitionName Column
839				err = json.Unmarshal(*v, &policyDefinitionName)
840				if err != nil {
841					return err
842				}
843				psqrt.PolicyDefinitionName = &policyDefinitionName
844			}
845		case "PolicyDefinitionAction":
846			if v != nil {
847				var policyDefinitionAction Column
848				err = json.Unmarshal(*v, &policyDefinitionAction)
849				if err != nil {
850					return err
851				}
852				psqrt.PolicyDefinitionAction = &policyDefinitionAction
853			}
854		case "PolicyDefinitionCategory":
855			if v != nil {
856				var policyDefinitionCategory Column
857				err = json.Unmarshal(*v, &policyDefinitionCategory)
858				if err != nil {
859					return err
860				}
861				psqrt.PolicyDefinitionCategory = &policyDefinitionCategory
862			}
863		case "PolicySetDefinitionId":
864			if v != nil {
865				var policySetDefinitionID Column
866				err = json.Unmarshal(*v, &policySetDefinitionID)
867				if err != nil {
868					return err
869				}
870				psqrt.PolicySetDefinitionID = &policySetDefinitionID
871			}
872		case "PolicySetDefinitionName":
873			if v != nil {
874				var policySetDefinitionName Column
875				err = json.Unmarshal(*v, &policySetDefinitionName)
876				if err != nil {
877					return err
878				}
879				psqrt.PolicySetDefinitionName = &policySetDefinitionName
880			}
881		case "PolicySetDefinitionOwner":
882			if v != nil {
883				var policySetDefinitionOwner Column
884				err = json.Unmarshal(*v, &policySetDefinitionOwner)
885				if err != nil {
886					return err
887				}
888				psqrt.PolicySetDefinitionOwner = &policySetDefinitionOwner
889			}
890		case "PolicySetDefinitionCategory":
891			if v != nil {
892				var policySetDefinitionCategory Column
893				err = json.Unmarshal(*v, &policySetDefinitionCategory)
894				if err != nil {
895					return err
896				}
897				psqrt.PolicySetDefinitionCategory = &policySetDefinitionCategory
898			}
899		case "PolicySetDefinitionParameters":
900			if v != nil {
901				var policySetDefinitionParameters Column
902				err = json.Unmarshal(*v, &policySetDefinitionParameters)
903				if err != nil {
904					return err
905				}
906				psqrt.PolicySetDefinitionParameters = &policySetDefinitionParameters
907			}
908		case "ManagementGroupIds":
909			if v != nil {
910				var managementGroupIds Column
911				err = json.Unmarshal(*v, &managementGroupIds)
912				if err != nil {
913					return err
914				}
915				psqrt.ManagementGroupIds = &managementGroupIds
916			}
917		case "PolicyDefinitionReferenceId":
918			if v != nil {
919				var policyDefinitionReferenceID Column
920				err = json.Unmarshal(*v, &policyDefinitionReferenceID)
921				if err != nil {
922					return err
923				}
924				psqrt.PolicyDefinitionReferenceID = &policyDefinitionReferenceID
925			}
926		}
927	}
928
929	return nil
930}
931
932// PolicyStatesQueryResultsTableMetadata metadata about the query results.
933type PolicyStatesQueryResultsTableMetadata struct {
934	// GeneratedQuery - Internal query generated. Used for diagnostics purposes.
935	GeneratedQuery *string `json:"generatedQuery,omitempty"`
936}
937
938// QueryFailure error response.
939type QueryFailure struct {
940	// Error - Error definition.
941	Error *QueryFailureError `json:"error,omitempty"`
942}
943
944// QueryFailureError error definition.
945type QueryFailureError struct {
946	// Code - Service specific error code which serves as the substatus for the HTTP error code.
947	Code *string `json:"code,omitempty"`
948	// Message - Description of the error.
949	Message *string `json:"message,omitempty"`
950}
951