0
# Policy Metadata Operations
1
2
## Overview
3
4
Policy Metadata operations enable querying and accessing policy metadata including built-in policy definitions, categories, and detailed policy information for governance and compliance workflows.
5
6
## Core Functionality
7
8
### Query Operations
9
10
#### list
11
12
```python
13
def list(
14
query_options: Optional[QueryOptions] = None,
15
**kwargs
16
) -> ItemPaged[SlimPolicyMetadata]
17
```
18
{ .api }
19
20
List policy metadata resources.
21
22
**Parameters:**
23
- `query_options`: Optional query parameters (top, filter, orderby, select)
24
25
**Returns:** Paginated collection of SlimPolicyMetadata objects
26
27
#### get_resource
28
29
```python
30
def get_resource(
31
resource_name: str,
32
**kwargs
33
) -> PolicyMetadata
34
```
35
{ .api }
36
37
Get a specific policy metadata resource.
38
39
**Parameters:**
40
- `resource_name`: Name of the policy metadata resource
41
42
**Returns:** PolicyMetadata object with full details
43
44
## Related Types
45
46
### PolicyMetadata
47
48
```python
49
class PolicyMetadata:
50
id: Optional[str]
51
type: Optional[str]
52
name: Optional[str]
53
properties: Optional[PolicyMetadataProperties]
54
```
55
{ .api }
56
57
### PolicyMetadataProperties
58
59
```python
60
class PolicyMetadataProperties:
61
metadata_id: Optional[str]
62
category: Optional[str]
63
title: Optional[str]
64
owner: Optional[str]
65
additional_content_url: Optional[str]
66
requirements: Optional[List[str]]
67
description: Optional[str]
68
```
69
{ .api }
70
71
### SlimPolicyMetadata
72
73
```python
74
class SlimPolicyMetadata:
75
id: Optional[str]
76
type: Optional[str]
77
name: Optional[str]
78
properties: Optional[PolicyMetadataSlimProperties]
79
```
80
{ .api }
81
82
### PolicyMetadataSlimProperties
83
84
```python
85
class PolicyMetadataSlimProperties:
86
metadata_id: Optional[str]
87
category: Optional[str]
88
title: Optional[str]
89
owner: Optional[str]
90
additional_content_url: Optional[str]
91
```
92
{ .api }
93
94
### PolicyMetadataCollection
95
96
```python
97
class PolicyMetadataCollection:
98
value: Optional[List[PolicyMetadata]]
99
next_link: Optional[str]
100
```
101
{ .api }
102
103
## Usage Examples
104
105
### List All Policy Metadata
106
107
```python
108
# List all available policy metadata
109
metadata_list = client.policy_metadata.list()
110
111
for metadata in metadata_list:
112
print(f"ID: {metadata.name}")
113
print(f"Category: {metadata.properties.category}")
114
print(f"Title: {metadata.properties.title}")
115
print(f"Owner: {metadata.properties.owner}")
116
print("---")
117
```
118
119
### Filter Policy Metadata by Category
120
121
```python
122
from azure.mgmt.policyinsights.models import QueryOptions
123
124
# Filter metadata by specific category
125
query_options = QueryOptions(
126
filter="properties/category eq 'Security'",
127
top=20
128
)
129
130
security_metadata = client.policy_metadata.list(query_options)
131
132
print("Security-related policy metadata:")
133
for metadata in security_metadata:
134
print(f"- {metadata.properties.title}")
135
if metadata.properties.additional_content_url:
136
print(f" Documentation: {metadata.properties.additional_content_url}")
137
```
138
139
### Get Detailed Policy Metadata
140
141
```python
142
# Get full details for a specific policy metadata resource
143
metadata = client.policy_metadata.get_resource(
144
resource_name="NIST_SP_800-53_R4_AC-1"
145
)
146
147
print(f"Title: {metadata.properties.title}")
148
print(f"Category: {metadata.properties.category}")
149
print(f"Description: {metadata.properties.description}")
150
print(f"Owner: {metadata.properties.owner}")
151
152
if metadata.properties.requirements:
153
print("Requirements:")
154
for requirement in metadata.properties.requirements:
155
print(f" - {requirement}")
156
157
if metadata.properties.additional_content_url:
158
print(f"Additional Content: {metadata.properties.additional_content_url}")
159
```
160
161
### Search Policy Metadata by Title
162
163
```python
164
# Search for metadata containing specific terms
165
query_options = QueryOptions(
166
filter="contains(properties/title, 'encryption')",
167
orderby="properties/title"
168
)
169
170
encryption_metadata = client.policy_metadata.list(query_options)
171
172
print("Encryption-related policies:")
173
for metadata in encryption_metadata:
174
print(f"- {metadata.properties.title}")
175
print(f" Category: {metadata.properties.category}")
176
print(f" ID: {metadata.name}")
177
```
178
179
### Browse by Owner
180
181
```python
182
# List metadata by owner (e.g., Microsoft)
183
query_options = QueryOptions(
184
filter="properties/owner eq 'Microsoft'",
185
select="name,properties/title,properties/category",
186
top=50
187
)
188
189
microsoft_metadata = client.policy_metadata.list(query_options)
190
191
# Group by category
192
categories = {}
193
for metadata in microsoft_metadata:
194
category = metadata.properties.category or "Other"
195
if category not in categories:
196
categories[category] = []
197
categories[category].append(metadata.properties.title)
198
199
for category, titles in categories.items():
200
print(f"\n{category}:")
201
for title in sorted(titles):
202
print(f" - {title}")
203
```
204
205
### Get Compliance Framework Metadata
206
207
```python
208
# Find metadata for specific compliance frameworks
209
frameworks = ["NIST", "CIS", "PCI", "HIPAA", "SOX"]
210
211
for framework in frameworks:
212
query_options = QueryOptions(
213
filter=f"contains(properties/title, '{framework}')"
214
)
215
216
framework_metadata = client.policy_metadata.list(query_options)
217
metadata_list = list(framework_metadata)
218
219
print(f"\n{framework} Framework ({len(metadata_list)} policies):")
220
for metadata in metadata_list:
221
print(f" - {metadata.properties.title}")
222
```