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