Skip to content

Commit 6c2ed5f

Browse files
author
Karthik Gumpu (from Dev Box)
committed
Add NSP GA changes
1 parent e4f088b commit 6c2ed5f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1420
-616
lines changed

src/nsp/azext_nsp/aaz/latest/network/perimeter/__cmd_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"network perimeter",
1616
)
1717
class __CMDGroup(AAZCommandGroup):
18-
"""Manage Network Security Perimeters
18+
"""Manage Network Security Perimeters.
1919
"""
2020
pass
2121

src/nsp/azext_nsp/aaz/latest/network/perimeter/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@
1313
from ._delete import *
1414
from ._list import *
1515
from ._show import *
16+
from ._wait import *

src/nsp/azext_nsp/aaz/latest/network/perimeter/_create.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
"network perimeter create",
1616
)
1717
class Create(AAZCommand):
18-
"""Creates a Network Security Perimeter.
18+
"""Create a network security perimeter.
1919
20-
:example: Create a Network Security Perimeter
20+
:example: Create a network security perimeter
2121
az network perimeter create -n MyPerimeter -g MyResourceGroup -l northcentralus
2222
"""
2323

2424
_aaz_info = {
25-
"version": "2023-08-01-preview",
25+
"version": "2024-07-01",
2626
"resources": [
27-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2023-08-01-preview"],
27+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2024-07-01"],
2828
]
2929
}
3030

@@ -48,6 +48,10 @@ def _build_arguments_schema(cls, *args, **kwargs):
4848
options=["-n", "--name", "--perimeter-name"],
4949
help="The name of the network security perimeter.",
5050
required=True,
51+
fmt=AAZStrArgFormat(
52+
pattern="(^[a-zA-Z0-9]+[a-zA-Z0-9_.-]*[a-zA-Z0-9_]+$)|(^[a-zA-Z0-9]$)",
53+
max_length=80,
54+
),
5155
)
5256
_args_schema.resource_group = AAZResourceGroupNameArg(
5357
required=True,
@@ -87,7 +91,7 @@ def post_operations(self):
8791
pass
8892

8993
def _output(self, *args, **kwargs):
90-
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=False)
94+
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
9195
return result
9296

9397
class NetworkSecurityPerimetersCreateOrUpdate(AAZHttpOperation):
@@ -138,7 +142,7 @@ def url_parameters(self):
138142
def query_parameters(self):
139143
parameters = {
140144
**self.serialize_query_param(
141-
"api-version", "2023-08-01-preview",
145+
"api-version", "2024-07-01",
142146
required=True,
143147
),
144148
}
@@ -164,7 +168,6 @@ def content(self):
164168
typ_kwargs={"flags": {"required": True, "client_flatten": True}}
165169
)
166170
_builder.set_prop("location", AAZStrType, ".location")
167-
_builder.set_prop("name", AAZStrType, ".perimeter_name")
168171
_builder.set_prop("tags", AAZDictType, ".tags")
169172

170173
tags = _builder.get(".tags")
@@ -195,8 +198,12 @@ def _build_schema_on_200_201(cls):
195198
flags={"read_only": True},
196199
)
197200
_schema_on_200_201.location = AAZStrType()
198-
_schema_on_200_201.name = AAZStrType()
199-
_schema_on_200_201.properties = AAZObjectType()
201+
_schema_on_200_201.name = AAZStrType(
202+
flags={"read_only": True},
203+
)
204+
_schema_on_200_201.properties = AAZObjectType(
205+
flags={"client_flatten": True},
206+
)
200207
_schema_on_200_201.tags = AAZDictType()
201208
_schema_on_200_201.type = AAZStrType(
202209
flags={"read_only": True},

src/nsp/azext_nsp/aaz/latest/network/perimeter/_delete.py

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,24 @@
1616
confirmation="Are you sure you want to perform this operation?",
1717
)
1818
class Delete(AAZCommand):
19-
"""Deletes a network security perimeter.
19+
"""Delete a network security perimeter.
2020
21-
:example: Delete a Network Security Perimeter
21+
:example: Delete a network security perimeter
2222
az network perimeter delete -g MyResourceGroup -n MyPerimeter
2323
"""
2424

2525
_aaz_info = {
26-
"version": "2023-08-01-preview",
26+
"version": "2024-07-01",
2727
"resources": [
28-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2023-08-01-preview"],
28+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2024-07-01"],
2929
]
3030
}
3131

32+
AZ_SUPPORT_NO_WAIT = True
33+
3234
def _handler(self, command_args):
3335
super()._handler(command_args)
34-
self._execute_operations()
35-
return None
36+
return self.build_lro_poller(self._execute_operations, None)
3637

3738
_args_schema = None
3839

@@ -50,15 +51,23 @@ def _build_arguments_schema(cls, *args, **kwargs):
5051
help="The name of the network security perimeter.",
5152
required=True,
5253
id_part="name",
54+
fmt=AAZStrArgFormat(
55+
pattern="(^[a-zA-Z0-9]+[a-zA-Z0-9_.-]*[a-zA-Z0-9_]+$)|(^[a-zA-Z0-9]$)",
56+
max_length=80,
57+
),
5358
)
5459
_args_schema.resource_group = AAZResourceGroupNameArg(
5560
required=True,
5661
)
62+
_args_schema.force_deletion = AAZBoolArg(
63+
options=["--force-deletion"],
64+
help="Deletes the resource even if it contains any child associations.",
65+
)
5766
return cls._args_schema
5867

5968
def _execute_operations(self):
6069
self.pre_operations()
61-
self.NetworkSecurityPerimetersDelete(ctx=self.ctx)()
70+
yield self.NetworkSecurityPerimetersDelete(ctx=self.ctx)()
6271
self.post_operations()
6372

6473
@register_callback
@@ -75,10 +84,33 @@ class NetworkSecurityPerimetersDelete(AAZHttpOperation):
7584
def __call__(self, *args, **kwargs):
7685
request = self.make_request()
7786
session = self.client.send_request(request=request, stream=False, **kwargs)
87+
if session.http_response.status_code in [202]:
88+
return self.client.build_lro_polling(
89+
self.ctx.args.no_wait,
90+
session,
91+
self.on_200,
92+
self.on_error,
93+
lro_options={"final-state-via": "azure-async-operation"},
94+
path_format_arguments=self.url_parameters,
95+
)
7896
if session.http_response.status_code in [200]:
79-
return self.on_200(session)
97+
return self.client.build_lro_polling(
98+
self.ctx.args.no_wait,
99+
session,
100+
self.on_200,
101+
self.on_error,
102+
lro_options={"final-state-via": "azure-async-operation"},
103+
path_format_arguments=self.url_parameters,
104+
)
80105
if session.http_response.status_code in [204]:
81-
return self.on_204(session)
106+
return self.client.build_lro_polling(
107+
self.ctx.args.no_wait,
108+
session,
109+
self.on_204,
110+
self.on_error,
111+
lro_options={"final-state-via": "azure-async-operation"},
112+
path_format_arguments=self.url_parameters,
113+
)
82114

83115
return self.on_error(session.http_response)
84116

@@ -119,7 +151,10 @@ def url_parameters(self):
119151
def query_parameters(self):
120152
parameters = {
121153
**self.serialize_query_param(
122-
"api-version", "2023-08-01-preview",
154+
"forceDeletion", self.ctx.args.force_deletion,
155+
),
156+
**self.serialize_query_param(
157+
"api-version", "2024-07-01",
123158
required=True,
124159
),
125160
}

src/nsp/azext_nsp/aaz/latest/network/perimeter/_list.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
"network perimeter list",
1616
)
1717
class List(AAZCommand):
18-
"""List all network security perimeters in a subscription.
18+
"""List all network security perimeters.
1919
20-
:example: List Network Security Perimeters
20+
:example: List all a network security perimeters
2121
az network perimeter list -g MyResourceGroup
2222
"""
2323

2424
_aaz_info = {
25-
"version": "2023-08-01-preview",
25+
"version": "2024-07-01",
2626
"resources": [
27-
["mgmt-plane", "/subscriptions/{}/providers/microsoft.network/networksecurityperimeters", "2023-08-01-preview"],
28-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters", "2023-08-01-preview"],
27+
["mgmt-plane", "/subscriptions/{}/providers/microsoft.network/networksecurityperimeters", "2024-07-01"],
28+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters", "2024-07-01"],
2929
]
3030
}
3131

@@ -80,7 +80,7 @@ def post_operations(self):
8080
pass
8181

8282
def _output(self, *args, **kwargs):
83-
result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=False)
83+
result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True)
8484
next_link = self.deserialize_output(self.ctx.vars.instance.next_link)
8585
return result, next_link
8686

@@ -134,7 +134,7 @@ def query_parameters(self):
134134
"$top", self.ctx.args.top,
135135
),
136136
**self.serialize_query_param(
137-
"api-version", "2023-08-01-preview",
137+
"api-version", "2024-07-01",
138138
required=True,
139139
),
140140
}
@@ -180,8 +180,12 @@ def _build_schema_on_200(cls):
180180
flags={"read_only": True},
181181
)
182182
_element.location = AAZStrType()
183-
_element.name = AAZStrType()
184-
_element.properties = AAZObjectType()
183+
_element.name = AAZStrType(
184+
flags={"read_only": True},
185+
)
186+
_element.properties = AAZObjectType(
187+
flags={"client_flatten": True},
188+
)
185189
_element.tags = AAZDictType()
186190
_element.type = AAZStrType(
187191
flags={"read_only": True},
@@ -248,7 +252,7 @@ def query_parameters(self):
248252
"$top", self.ctx.args.top,
249253
),
250254
**self.serialize_query_param(
251-
"api-version", "2023-08-01-preview",
255+
"api-version", "2024-07-01",
252256
required=True,
253257
),
254258
}
@@ -294,8 +298,12 @@ def _build_schema_on_200(cls):
294298
flags={"read_only": True},
295299
)
296300
_element.location = AAZStrType()
297-
_element.name = AAZStrType()
298-
_element.properties = AAZObjectType()
301+
_element.name = AAZStrType(
302+
flags={"read_only": True},
303+
)
304+
_element.properties = AAZObjectType(
305+
flags={"client_flatten": True},
306+
)
299307
_element.tags = AAZDictType()
300308
_element.type = AAZStrType(
301309
flags={"read_only": True},

src/nsp/azext_nsp/aaz/latest/network/perimeter/_show.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515
"network perimeter show",
1616
)
1717
class Show(AAZCommand):
18-
"""Gets the specified network security perimeter by the name.
18+
"""Get a network security perimeter.
1919
20-
:example: Get the Network Security Perimeter
20+
:example: Get a network security perimeter
2121
az network perimeter show -g MyResourceGroup -n MyPerimeter
2222
"""
2323

2424
_aaz_info = {
25-
"version": "2023-08-01-preview",
25+
"version": "2024-07-01",
2626
"resources": [
27-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2023-08-01-preview"],
27+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networksecurityperimeters/{}", "2024-07-01"],
2828
]
2929
}
3030

@@ -49,6 +49,10 @@ def _build_arguments_schema(cls, *args, **kwargs):
4949
help="The name of the network security perimeter.",
5050
required=True,
5151
id_part="name",
52+
fmt=AAZStrArgFormat(
53+
pattern="(^[a-zA-Z0-9]+[a-zA-Z0-9_.-]*[a-zA-Z0-9_]+$)|(^[a-zA-Z0-9]$)",
54+
max_length=80,
55+
),
5256
)
5357
_args_schema.resource_group = AAZResourceGroupNameArg(
5458
required=True,
@@ -69,7 +73,7 @@ def post_operations(self):
6973
pass
7074

7175
def _output(self, *args, **kwargs):
72-
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=False)
76+
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
7377
return result
7478

7579
class NetworkSecurityPerimetersGet(AAZHttpOperation):
@@ -120,7 +124,7 @@ def url_parameters(self):
120124
def query_parameters(self):
121125
parameters = {
122126
**self.serialize_query_param(
123-
"api-version", "2023-08-01-preview",
127+
"api-version", "2024-07-01",
124128
required=True,
125129
),
126130
}
@@ -157,8 +161,12 @@ def _build_schema_on_200(cls):
157161
flags={"read_only": True},
158162
)
159163
_schema_on_200.location = AAZStrType()
160-
_schema_on_200.name = AAZStrType()
161-
_schema_on_200.properties = AAZObjectType()
164+
_schema_on_200.name = AAZStrType(
165+
flags={"read_only": True},
166+
)
167+
_schema_on_200.properties = AAZObjectType(
168+
flags={"client_flatten": True},
169+
)
162170
_schema_on_200.tags = AAZDictType()
163171
_schema_on_200.type = AAZStrType(
164172
flags={"read_only": True},

0 commit comments

Comments
 (0)