0
# Policy States Operations
1
2
## Overview
3
4
Policy States operations enable querying and summarizing policy compliance states across different Azure scopes. These operations provide detailed compliance information and support triggering policy evaluations.
5
6
## Core Functionality
7
8
### Query Operations
9
10
#### list_query_results_for_management_group
11
12
```python
13
def list_query_results_for_management_group(
14
policy_states_resource: str,
15
management_group_name: str,
16
query_options: Optional[QueryOptions] = None,
17
**kwargs
18
) -> ItemPaged[PolicyStatesQueryResults]
19
```
20
{ .api }
21
22
Query policy states for a management group.
23
24
**Parameters:**
25
- `policy_states_resource`: Resource type ("default" or "latest")
26
- `management_group_name`: Management group name
27
- `query_options`: Optional query parameters (top, filter, orderby, select, from, to, apply)
28
29
**Returns:** Paginated collection of PolicyState objects
30
31
#### list_query_results_for_subscription
32
33
```python
34
def list_query_results_for_subscription(
35
policy_states_resource: str,
36
subscription_id: str,
37
query_options: Optional[QueryOptions] = None,
38
**kwargs
39
) -> ItemPaged[PolicyStatesQueryResults]
40
```
41
{ .api }
42
43
Query policy states for a subscription.
44
45
**Parameters:**
46
- `policy_states_resource`: Resource type ("default" or "latest")
47
- `subscription_id`: Azure subscription ID
48
- `query_options`: Optional query parameters
49
50
**Returns:** Paginated collection of PolicyState objects
51
52
#### list_query_results_for_resource_group
53
54
```python
55
def list_query_results_for_resource_group(
56
policy_states_resource: str,
57
subscription_id: str,
58
resource_group_name: str,
59
query_options: Optional[QueryOptions] = None,
60
**kwargs
61
) -> ItemPaged[PolicyStatesQueryResults]
62
```
63
{ .api }
64
65
Query policy states for a resource group.
66
67
**Parameters:**
68
- `policy_states_resource`: Resource type ("default" or "latest")
69
- `subscription_id`: Azure subscription ID
70
- `resource_group_name`: Resource group name
71
- `query_options`: Optional query parameters
72
73
**Returns:** Paginated collection of PolicyState objects
74
75
#### list_query_results_for_resource
76
77
```python
78
def list_query_results_for_resource(
79
policy_states_resource: str,
80
resource_id: str,
81
query_options: Optional[QueryOptions] = None,
82
**kwargs
83
) -> ItemPaged[PolicyStatesQueryResults]
84
```
85
{ .api }
86
87
Query policy states for a specific resource.
88
89
**Parameters:**
90
- `policy_states_resource`: Resource type ("default" or "latest")
91
- `resource_id`: Full Azure resource ID
92
- `query_options`: Optional query parameters
93
94
**Returns:** Paginated collection of PolicyState objects
95
96
#### list_query_results_for_policy_set_definition
97
98
```python
99
def list_query_results_for_policy_set_definition(
100
policy_states_resource: str,
101
subscription_id: str,
102
policy_set_definition_name: str,
103
query_options: Optional[QueryOptions] = None,
104
**kwargs
105
) -> ItemPaged[PolicyStatesQueryResults]
106
```
107
{ .api }
108
109
Query policy states for a policy set definition.
110
111
**Parameters:**
112
- `policy_states_resource`: Resource type ("default" or "latest")
113
- `subscription_id`: Azure subscription ID
114
- `policy_set_definition_name`: Policy set definition name
115
- `query_options`: Optional query parameters
116
117
**Returns:** Paginated collection of PolicyState objects
118
119
#### list_query_results_for_policy_definition
120
121
```python
122
def list_query_results_for_policy_definition(
123
policy_states_resource: str,
124
subscription_id: str,
125
policy_definition_name: str,
126
query_options: Optional[QueryOptions] = None,
127
**kwargs
128
) -> ItemPaged[PolicyStatesQueryResults]
129
```
130
{ .api }
131
132
Query policy states for a policy definition.
133
134
**Parameters:**
135
- `policy_states_resource`: Resource type ("default" or "latest")
136
- `subscription_id`: Azure subscription ID
137
- `policy_definition_name`: Policy definition name
138
- `query_options`: Optional query parameters
139
140
**Returns:** Paginated collection of PolicyState objects
141
142
#### list_query_results_for_subscription_level_policy_assignment
143
144
```python
145
def list_query_results_for_subscription_level_policy_assignment(
146
policy_states_resource: str,
147
subscription_id: str,
148
policy_assignment_name: str,
149
query_options: Optional[QueryOptions] = None,
150
**kwargs
151
) -> ItemPaged[PolicyStatesQueryResults]
152
```
153
{ .api }
154
155
Query policy states for a subscription-level policy assignment.
156
157
**Parameters:**
158
- `policy_states_resource`: Resource type ("default" or "latest")
159
- `subscription_id`: Azure subscription ID
160
- `policy_assignment_name`: Policy assignment name
161
- `query_options`: Optional query parameters
162
163
**Returns:** Paginated collection of PolicyState objects
164
165
#### list_query_results_for_resource_group_level_policy_assignment
166
167
```python
168
def list_query_results_for_resource_group_level_policy_assignment(
169
policy_states_resource: str,
170
subscription_id: str,
171
resource_group_name: str,
172
policy_assignment_name: str,
173
query_options: Optional[QueryOptions] = None,
174
**kwargs
175
) -> ItemPaged[PolicyStatesQueryResults]
176
```
177
{ .api }
178
179
Query policy states for a resource group-level policy assignment.
180
181
**Parameters:**
182
- `policy_states_resource`: Resource type ("default" or "latest")
183
- `subscription_id`: Azure subscription ID
184
- `resource_group_name`: Resource group name
185
- `policy_assignment_name`: Policy assignment name
186
- `query_options`: Optional query parameters
187
188
**Returns:** Paginated collection of PolicyState objects
189
190
### Summary Operations
191
192
#### summarize_for_management_group
193
194
```python
195
def summarize_for_management_group(
196
management_group_name: str,
197
query_options: Optional[QueryOptions] = None,
198
**kwargs
199
) -> SummarizeResults
200
```
201
{ .api }
202
203
Summarize policy states for a management group.
204
205
**Parameters:**
206
- `management_group_name`: Management group name
207
- `query_options`: Optional query parameters
208
209
**Returns:** SummarizeResults object with compliance summary
210
211
#### summarize_for_subscription
212
213
```python
214
def summarize_for_subscription(
215
subscription_id: str,
216
query_options: Optional[QueryOptions] = None,
217
**kwargs
218
) -> SummarizeResults
219
```
220
{ .api }
221
222
Summarize policy states for a subscription.
223
224
**Parameters:**
225
- `subscription_id`: Azure subscription ID
226
- `query_options`: Optional query parameters
227
228
**Returns:** SummarizeResults object with compliance summary
229
230
#### summarize_for_resource_group
231
232
```python
233
def summarize_for_resource_group(
234
subscription_id: str,
235
resource_group_name: str,
236
query_options: Optional[QueryOptions] = None,
237
**kwargs
238
) -> SummarizeResults
239
```
240
{ .api }
241
242
Summarize policy states for a resource group.
243
244
**Parameters:**
245
- `subscription_id`: Azure subscription ID
246
- `resource_group_name`: Resource group name
247
- `query_options`: Optional query parameters
248
249
**Returns:** SummarizeResults object with compliance summary
250
251
#### summarize_for_resource
252
253
```python
254
def summarize_for_resource(
255
resource_id: str,
256
query_options: Optional[QueryOptions] = None,
257
**kwargs
258
) -> SummarizeResults
259
```
260
{ .api }
261
262
Summarize policy states for a specific resource.
263
264
**Parameters:**
265
- `resource_id`: Full Azure resource ID
266
- `query_options`: Optional query parameters
267
268
**Returns:** SummarizeResults object with compliance summary
269
270
#### summarize_for_policy_set_definition
271
272
```python
273
def summarize_for_policy_set_definition(
274
subscription_id: str,
275
policy_set_definition_name: str,
276
query_options: Optional[QueryOptions] = None,
277
**kwargs
278
) -> SummarizeResults
279
```
280
{ .api }
281
282
Summarize policy states for a policy set definition.
283
284
**Parameters:**
285
- `subscription_id`: Azure subscription ID
286
- `policy_set_definition_name`: Policy set definition name
287
- `query_options`: Optional query parameters
288
289
**Returns:** SummarizeResults object with compliance summary
290
291
#### summarize_for_policy_definition
292
293
```python
294
def summarize_for_policy_definition(
295
subscription_id: str,
296
policy_definition_name: str,
297
query_options: Optional[QueryOptions] = None,
298
**kwargs
299
) -> SummarizeResults
300
```
301
{ .api }
302
303
Summarize policy states for a policy definition.
304
305
**Parameters:**
306
- `subscription_id`: Azure subscription ID
307
- `policy_definition_name`: Policy definition name
308
- `query_options`: Optional query parameters
309
310
**Returns:** SummarizeResults object with compliance summary
311
312
#### summarize_for_subscription_level_policy_assignment
313
314
```python
315
def summarize_for_subscription_level_policy_assignment(
316
subscription_id: str,
317
policy_assignment_name: str,
318
query_options: Optional[QueryOptions] = None,
319
**kwargs
320
) -> SummarizeResults
321
```
322
{ .api }
323
324
Summarize policy states for a subscription-level policy assignment.
325
326
**Parameters:**
327
- `subscription_id`: Azure subscription ID
328
- `policy_assignment_name`: Policy assignment name
329
- `query_options`: Optional query parameters
330
331
**Returns:** SummarizeResults object with compliance summary
332
333
#### summarize_for_resource_group_level_policy_assignment
334
335
```python
336
def summarize_for_resource_group_level_policy_assignment(
337
subscription_id: str,
338
resource_group_name: str,
339
policy_assignment_name: str,
340
query_options: Optional[QueryOptions] = None,
341
**kwargs
342
) -> SummarizeResults
343
```
344
{ .api }
345
346
Summarize policy states for a resource group-level policy assignment.
347
348
**Parameters:**
349
- `subscription_id`: Azure subscription ID
350
- `resource_group_name`: Resource group name
351
- `policy_assignment_name`: Policy assignment name
352
- `query_options`: Optional query parameters
353
354
**Returns:** SummarizeResults object with compliance summary
355
356
### Evaluation Trigger Operations
357
358
#### begin_trigger_subscription_evaluation
359
360
```python
361
def begin_trigger_subscription_evaluation(
362
subscription_id: str,
363
**kwargs
364
) -> LROPoller[None]
365
```
366
{ .api }
367
368
Trigger policy evaluation for a subscription (long-running operation).
369
370
**Parameters:**
371
- `subscription_id`: Azure subscription ID
372
373
**Returns:** LROPoller for monitoring operation progress
374
375
#### begin_trigger_resource_group_evaluation
376
377
```python
378
def begin_trigger_resource_group_evaluation(
379
subscription_id: str,
380
resource_group_name: str,
381
**kwargs
382
) -> LROPoller[None]
383
```
384
{ .api }
385
386
Trigger policy evaluation for a resource group (long-running operation).
387
388
**Parameters:**
389
- `subscription_id`: Azure subscription ID
390
- `resource_group_name`: Resource group name
391
392
**Returns:** LROPoller for monitoring operation progress
393
394
## Related Types
395
396
### PolicyState
397
398
```python
399
class PolicyState:
400
timestamp: Optional[datetime.datetime]
401
resource_id: Optional[str]
402
policy_assignment_id: Optional[str]
403
policy_definition_id: Optional[str]
404
effective_parameters: Optional[str]
405
is_compliant: Optional[bool]
406
subscription_id: Optional[str]
407
resource_type: Optional[str]
408
resource_location: Optional[str]
409
resource_group: Optional[str]
410
resource_tags: Optional[str]
411
policy_assignment_name: Optional[str]
412
policy_assignment_owner: Optional[str]
413
policy_assignment_parameters: Optional[str]
414
policy_assignment_scope: Optional[str]
415
policy_definition_name: Optional[str]
416
policy_definition_action: Optional[str]
417
policy_definition_category: Optional[str]
418
policy_set_definition_id: Optional[str]
419
policy_set_definition_name: Optional[str]
420
policy_set_definition_owner: Optional[str]
421
policy_set_definition_category: Optional[str]
422
policy_set_definition_parameters: Optional[str]
423
management_group_ids: Optional[str]
424
policy_definition_reference_id: Optional[str]
425
compliance_state: Optional[str]
426
policy_evaluation_details: Optional[PolicyEvaluationDetails]
427
policy_definition_group_names: Optional[List[str]]
428
components: Optional[List[ComponentStateDetails]]
429
policy_definition_version: Optional[str]
430
policy_set_definition_version: Optional[str]
431
policy_assignment_version: Optional[str]
432
```
433
{ .api }
434
435
### QueryOptions
436
437
```python
438
class QueryOptions:
439
top: Optional[int]
440
filter: Optional[str]
441
orderby: Optional[str]
442
select: Optional[str]
443
from_property: Optional[datetime.datetime]
444
to: Optional[datetime.datetime]
445
apply: Optional[str]
446
expand: Optional[str]
447
```
448
{ .api }
449
450
### SummarizeResults
451
452
```python
453
class SummarizeResults:
454
odata_context: Optional[str]
455
odata_count: Optional[int]
456
value: Optional[List[Summary]]
457
```
458
{ .api }
459
460
### PolicyStatesResource Enum
461
462
```python
463
class PolicyStatesResource(str, Enum):
464
DEFAULT = "default"
465
LATEST = "latest"
466
```
467
{ .api }
468
469
## Usage Examples
470
471
### Query Latest Policy States
472
473
```python
474
# Query latest policy states for subscription with filtering
475
query_options = QueryOptions(
476
filter="isCompliant eq false",
477
top=100,
478
orderby="timestamp desc"
479
)
480
481
policy_states = client.policy_states.list_query_results_for_subscription(
482
policy_states_resource=PolicyStatesResource.LATEST,
483
subscription_id=subscription_id,
484
query_options=query_options
485
)
486
487
for state in policy_states:
488
print(f"Resource: {state.resource_id}, Compliant: {state.is_compliant}")
489
```
490
491
### Trigger Evaluation and Monitor Progress
492
493
```python
494
# Trigger subscription evaluation
495
poller = client.policy_states.begin_trigger_subscription_evaluation(
496
subscription_id=subscription_id
497
)
498
499
# Wait for completion
500
result = poller.result() # This will block until completion
501
print("Policy evaluation completed")
502
503
# Or poll for status
504
while not poller.done():
505
print("Evaluation in progress...")
506
time.sleep(30)
507
```
508
509
### Get Compliance Summary
510
511
```python
512
# Get compliance summary for resource group
513
summary = client.policy_states.summarize_for_resource_group(
514
subscription_id=subscription_id,
515
resource_group_name="my-resource-group"
516
)
517
518
print(f"Total resources: {summary.odata_count}")
519
for summary_item in summary.value:
520
print(f"Policy: {summary_item}")
521
```