or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

index.mdpolicy-events.mdpolicy-metadata.mdpolicy-restrictions.mdpolicy-states.mdpolicy-tracked-resources.mdremediations.md

policy-states.mddocs/

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

```