Skip to content

Commit db34d97

Browse files
DraconicidaChang Lu
andauthored
{Search} az search: Add 2025-05-01 support (#32111)
Co-authored-by: Chang Lu <[email protected]>
1 parent d8a92f6 commit db34d97

File tree

78 files changed

+16755
-36711
lines changed

Some content is hidden

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

78 files changed

+16755
-36711
lines changed

src/azure-cli/azure/cli/command_modules/search/_help.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,84 @@
6464
type: command
6565
short-summary: Wait for async service operations.
6666
"""
67+
68+
helps['search service query-key create'] = """
69+
type: command
70+
short-summary: Creates a query key for a given Azure Search service.
71+
examples:
72+
- name: Create a query key for a Search service.
73+
text: >
74+
az search service query-key create --resource-group MyResourceGroup --search-service-name MySearchService -n MyQueryKey
75+
"""
76+
77+
helps['search service admin-key regenerate'] = """
78+
type: command
79+
short-summary: Regenerate an admin key for a given Azure Search service.
80+
examples:
81+
- name: Regenerate the primary admin key for a Search service.
82+
text: >
83+
az search service admin-key regenerate --resource-group MyResourceGroup --search-service-name MySearchService --key-kind primary
84+
- name: Regenerate the secondary admin key for a Search service.
85+
text: >
86+
az search service admin-key regenerate --resource-group MyResourceGroup --search-service-name MySearchService --key-kind secondary
87+
"""
88+
89+
helps['search service check-name-availability'] = """
90+
type: command
91+
short-summary: Check the availability of a given Azure Search service name.
92+
examples:
93+
- name: Check if a Search service name is available.
94+
text: >
95+
az search service check-name-availability --name MySearchService --type searchServices
96+
"""
97+
98+
helps['search service upgrade'] = """
99+
type: command
100+
short-summary: Upgrade a given Azure Search service.
101+
examples:
102+
- name: Upgrade a Search service.
103+
text: >
104+
az search service upgrade --resource-group MyResourceGroup --search-service-name MySearchService
105+
"""
106+
107+
helps['search service network-security-perimeter-configuration reconcile'] = """
108+
type: command
109+
short-summary: Reconcile network security perimeter configuration for a given Azure Search service.
110+
examples:
111+
- name: Reconcile network security perimeter configuration and specify a perimeter name.
112+
text: >
113+
az search service network-security-perimeter-configuration reconcile --resource-group MyResourceGroup --search-service-name MySearchService --nsp-config-name MyPerimeter
114+
"""
115+
116+
helps['search service shared-private-link-resource create'] = """
117+
type: command
118+
short-summary: Create a shared private link resource for a given Azure Search service.
119+
examples:
120+
- name: Create a shared private link resource for a Search service.
121+
text: >
122+
az search service shared-private-link-resource create --resource-group MyResourceGroup --search-service-name MySearchService --name MySharedPrivateLinkResource --group-id MyGroupId --resource-id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{provider}/{resourceType}/{resourceName}
123+
- name: Create a shared private link resource and specify a request message.
124+
text: >
125+
az search service shared-private-link-resource create --resource-group MyResourceGroup --search-service-name MySearchService --name MySharedPrivateLinkResource --group-id MyGroupId --resource-id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{provider}/{resourceType}/{resourceName} --request-message "Please approve this connection."
126+
"""
127+
128+
helps['search service shared-private-link-resource update'] = """
129+
type: command
130+
short-summary: Update a shared private link resource for a given Azure Search service.
131+
examples:
132+
- name: Update the request message for a shared private link resource.
133+
text: >
134+
az search service shared-private-link-resource update --resource-group MyResourceGroup --search-service-name MySearchService --name MySharedPrivateLinkResource --request-message "Updated request message."
135+
- name: Approve a shared private link resource connection.
136+
text: >
137+
az search service shared-private-link-resource update --resource-group MyResourceGroup --search-service-name MySearchService --name MySharedPrivateLinkResource --status Approved
138+
"""
139+
140+
helps['search service private-endpoint-connection update'] = """
141+
type: command
142+
short-summary: Update a private endpoint connection for a given Azure Search service.
143+
examples:
144+
- name: Approve a private endpoint connection.
145+
text: >
146+
az search service private-endpoint-connection update --resource-group MyResourceGroup --search-service-name MySearchService --name MyPrivateEndpointConnection
147+
"""

src/azure-cli/azure/cli/command_modules/search/aaz/latest/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@
44
#
55
# Code generated by aaz-dev-tools
66
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: skip-file
9+
# flake8: noqa
10+

src/azure-cli/azure/cli/command_modules/search/aaz/latest/search/__cmd_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"search",
1616
)
1717
class __CMDGroup(AAZCommandGroup):
18-
"""Manage Azure Search services, admin keys and query keys
18+
"""Manage Search
1919
"""
2020
pass
2121

src/azure-cli/azure/cli/command_modules/search/aaz/latest/search/service/__cmd_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"search service",
1616
)
1717
class __CMDGroup(AAZCommandGroup):
18-
"""Manage Azure Search services
18+
"""Manage Service
1919
"""
2020
pass
2121

src/azure-cli/azure/cli/command_modules/search/aaz/latest/search/service/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@
99
# flake8: noqa
1010

1111
from .__cmd_group import *
12+
from ._check_name_availability import *
1213
from ._create import *
1314
from ._delete import *
15+
from ._list import *
1416
from ._show import *
1517
from ._update import *
18+
from ._upgrade import *
1619
from ._wait import *
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: skip-file
9+
# flake8: noqa
10+
11+
from azure.cli.core.aaz import *
12+
13+
14+
@register_command(
15+
"search service check-name-availability",
16+
)
17+
class CheckNameAvailability(AAZCommand):
18+
"""Checks whether or not the given search service name is available for use. Search service names must be globally unique since they are part of the service URI (https://`<name>`.search.windows.net).
19+
"""
20+
21+
_aaz_info = {
22+
"version": "2025-05-01",
23+
"resources": [
24+
["mgmt-plane", "/subscriptions/{}/providers/microsoft.search/checknameavailability", "2025-05-01"],
25+
]
26+
}
27+
28+
def _handler(self, command_args):
29+
super()._handler(command_args)
30+
self._execute_operations()
31+
return self._output()
32+
33+
_args_schema = None
34+
35+
@classmethod
36+
def _build_arguments_schema(cls, *args, **kwargs):
37+
if cls._args_schema is not None:
38+
return cls._args_schema
39+
cls._args_schema = super()._build_arguments_schema(*args, **kwargs)
40+
41+
# define Arg Group ""
42+
43+
# define Arg Group "CheckNameAvailabilityInput"
44+
45+
_args_schema = cls._args_schema
46+
_args_schema.name = AAZStrArg(
47+
options=["--name"],
48+
arg_group="CheckNameAvailabilityInput",
49+
help="The search service name to validate. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length.",
50+
required=True,
51+
)
52+
_args_schema.type = AAZStrArg(
53+
options=["--type"],
54+
arg_group="CheckNameAvailabilityInput",
55+
help="The type of the resource whose name is to be validated. This value must always be 'searchServices'.",
56+
required=True,
57+
enum={"searchServices": "searchServices"},
58+
)
59+
return cls._args_schema
60+
61+
def _execute_operations(self):
62+
self.pre_operations()
63+
self.ServicesCheckNameAvailability(ctx=self.ctx)()
64+
self.post_operations()
65+
66+
@register_callback
67+
def pre_operations(self):
68+
pass
69+
70+
@register_callback
71+
def post_operations(self):
72+
pass
73+
74+
def _output(self, *args, **kwargs):
75+
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
76+
return result
77+
78+
class ServicesCheckNameAvailability(AAZHttpOperation):
79+
CLIENT_TYPE = "MgmtClient"
80+
81+
def __call__(self, *args, **kwargs):
82+
request = self.make_request()
83+
session = self.client.send_request(request=request, stream=False, **kwargs)
84+
if session.http_response.status_code in [200]:
85+
return self.on_200(session)
86+
87+
return self.on_error(session.http_response)
88+
89+
@property
90+
def url(self):
91+
return self.client.format_url(
92+
"/subscriptions/{subscriptionId}/providers/Microsoft.Search/checkNameAvailability",
93+
**self.url_parameters
94+
)
95+
96+
@property
97+
def method(self):
98+
return "POST"
99+
100+
@property
101+
def error_format(self):
102+
return "ODataV4Format"
103+
104+
@property
105+
def url_parameters(self):
106+
parameters = {
107+
**self.serialize_url_param(
108+
"subscriptionId", self.ctx.subscription_id,
109+
required=True,
110+
),
111+
}
112+
return parameters
113+
114+
@property
115+
def query_parameters(self):
116+
parameters = {
117+
**self.serialize_query_param(
118+
"api-version", "2025-05-01",
119+
required=True,
120+
),
121+
}
122+
return parameters
123+
124+
@property
125+
def header_parameters(self):
126+
parameters = {
127+
**self.serialize_header_param(
128+
"Content-Type", "application/json",
129+
),
130+
**self.serialize_header_param(
131+
"Accept", "application/json",
132+
),
133+
}
134+
return parameters
135+
136+
@property
137+
def content(self):
138+
_content_value, _builder = self.new_content_builder(
139+
self.ctx.args,
140+
typ=AAZObjectType,
141+
typ_kwargs={"flags": {"required": True, "client_flatten": True}}
142+
)
143+
_builder.set_prop("name", AAZStrType, ".name", typ_kwargs={"flags": {"required": True}})
144+
_builder.set_prop("type", AAZStrType, ".type", typ_kwargs={"flags": {"required": True}})
145+
146+
return self.serialize_content(_content_value)
147+
148+
def on_200(self, session):
149+
data = self.deserialize_http_content(session)
150+
self.ctx.set_var(
151+
"instance",
152+
data,
153+
schema_builder=self._build_schema_on_200
154+
)
155+
156+
_schema_on_200 = None
157+
158+
@classmethod
159+
def _build_schema_on_200(cls):
160+
if cls._schema_on_200 is not None:
161+
return cls._schema_on_200
162+
163+
cls._schema_on_200 = AAZObjectType()
164+
165+
_schema_on_200 = cls._schema_on_200
166+
_schema_on_200.message = AAZStrType(
167+
flags={"read_only": True},
168+
)
169+
_schema_on_200.name_available = AAZBoolType(
170+
serialized_name="nameAvailable",
171+
flags={"read_only": True},
172+
)
173+
_schema_on_200.reason = AAZStrType(
174+
flags={"read_only": True},
175+
)
176+
177+
return cls._schema_on_200
178+
179+
180+
class _CheckNameAvailabilityHelper:
181+
"""Helper class for CheckNameAvailability"""
182+
183+
184+
__all__ = ["CheckNameAvailability"]

0 commit comments

Comments
 (0)