1# coding=utf-8
2# --------------------------------------------------------------------------
3# Copyright (c) Microsoft Corporation. All rights reserved.
4# Licensed under the MIT License. See License.txt in the project root for license information.
5# Code generated by Microsoft (R) AutoRest Code Generator.
6# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7# --------------------------------------------------------------------------
8
9from typing import Dict, List, Optional, Union
10
11import msrest.serialization
12
13from ._search_management_client_enums import *
14
15
16class AdminKeyResult(msrest.serialization.Model):
17    """Response containing the primary and secondary admin API keys for a given Azure Cognitive Search service.
18
19    Variables are only populated by the server, and will be ignored when sending a request.
20
21    :ivar primary_key: The primary admin API key of the search service.
22    :vartype primary_key: str
23    :ivar secondary_key: The secondary admin API key of the search service.
24    :vartype secondary_key: str
25    """
26
27    _validation = {
28        'primary_key': {'readonly': True},
29        'secondary_key': {'readonly': True},
30    }
31
32    _attribute_map = {
33        'primary_key': {'key': 'primaryKey', 'type': 'str'},
34        'secondary_key': {'key': 'secondaryKey', 'type': 'str'},
35    }
36
37    def __init__(
38        self,
39        **kwargs
40    ):
41        super(AdminKeyResult, self).__init__(**kwargs)
42        self.primary_key = None
43        self.secondary_key = None
44
45
46class AsyncOperationResult(msrest.serialization.Model):
47    """The details of a long running asynchronous shared private link resource operation.
48
49    :param status: The current status of the long running asynchronous shared private link resource
50     operation. Possible values include: "Running", "Succeeded", "Failed".
51    :type status: str or ~azure.mgmt.search.models.SharedPrivateLinkResourceAsyncOperationResult
52    """
53
54    _attribute_map = {
55        'status': {'key': 'status', 'type': 'str'},
56    }
57
58    def __init__(
59        self,
60        *,
61        status: Optional[Union[str, "SharedPrivateLinkResourceAsyncOperationResult"]] = None,
62        **kwargs
63    ):
64        super(AsyncOperationResult, self).__init__(**kwargs)
65        self.status = status
66
67
68class CheckNameAvailabilityInput(msrest.serialization.Model):
69    """Input of check name availability API.
70
71    Variables are only populated by the server, and will be ignored when sending a request.
72
73    All required parameters must be populated in order to send to Azure.
74
75    :param name: Required. The search service name to validate. Search service names must only
76     contain lowercase letters, digits or dashes, cannot use dash as the first two or last one
77     characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in
78     length.
79    :type name: str
80    :ivar type: Required. The type of the resource whose name is to be validated. This value must
81     always be 'searchServices'. Default value: "searchServices".
82    :vartype type: str
83    """
84
85    _validation = {
86        'name': {'required': True},
87        'type': {'required': True, 'constant': True},
88    }
89
90    _attribute_map = {
91        'name': {'key': 'name', 'type': 'str'},
92        'type': {'key': 'type', 'type': 'str'},
93    }
94
95    type = "searchServices"
96
97    def __init__(
98        self,
99        *,
100        name: str,
101        **kwargs
102    ):
103        super(CheckNameAvailabilityInput, self).__init__(**kwargs)
104        self.name = name
105
106
107class CheckNameAvailabilityOutput(msrest.serialization.Model):
108    """Output of check name availability API.
109
110    Variables are only populated by the server, and will be ignored when sending a request.
111
112    :ivar is_name_available: A value indicating whether the name is available.
113    :vartype is_name_available: bool
114    :ivar reason: The reason why the name is not available. 'Invalid' indicates the name provided
115     does not match the naming requirements (incorrect length, unsupported characters, etc.).
116     'AlreadyExists' indicates that the name is already in use and is therefore unavailable.
117     Possible values include: "Invalid", "AlreadyExists".
118    :vartype reason: str or ~azure.mgmt.search.models.UnavailableNameReason
119    :ivar message: A message that explains why the name is invalid and provides resource naming
120     requirements. Available only if 'Invalid' is returned in the 'reason' property.
121    :vartype message: str
122    """
123
124    _validation = {
125        'is_name_available': {'readonly': True},
126        'reason': {'readonly': True},
127        'message': {'readonly': True},
128    }
129
130    _attribute_map = {
131        'is_name_available': {'key': 'nameAvailable', 'type': 'bool'},
132        'reason': {'key': 'reason', 'type': 'str'},
133        'message': {'key': 'message', 'type': 'str'},
134    }
135
136    def __init__(
137        self,
138        **kwargs
139    ):
140        super(CheckNameAvailabilityOutput, self).__init__(**kwargs)
141        self.is_name_available = None
142        self.reason = None
143        self.message = None
144
145
146class CloudErrorBody(msrest.serialization.Model):
147    """Describes a particular API error with an error code and a message.
148
149    :param code: An error code that describes the error condition more precisely than an HTTP
150     status code. Can be used to programmatically handle specific error cases.
151    :type code: str
152    :param message: A message that describes the error in detail and provides debugging
153     information.
154    :type message: str
155    :param target: The target of the particular error (for example, the name of the property in
156     error).
157    :type target: str
158    :param details: Contains nested errors that are related to this error.
159    :type details: list[~azure.mgmt.search.models.CloudErrorBody]
160    """
161
162    _attribute_map = {
163        'code': {'key': 'code', 'type': 'str'},
164        'message': {'key': 'message', 'type': 'str'},
165        'target': {'key': 'target', 'type': 'str'},
166        'details': {'key': 'details', 'type': '[CloudErrorBody]'},
167    }
168
169    def __init__(
170        self,
171        *,
172        code: Optional[str] = None,
173        message: Optional[str] = None,
174        target: Optional[str] = None,
175        details: Optional[List["CloudErrorBody"]] = None,
176        **kwargs
177    ):
178        super(CloudErrorBody, self).__init__(**kwargs)
179        self.code = code
180        self.message = message
181        self.target = target
182        self.details = details
183
184
185class Identity(msrest.serialization.Model):
186    """Identity for the resource.
187
188    Variables are only populated by the server, and will be ignored when sending a request.
189
190    All required parameters must be populated in order to send to Azure.
191
192    :ivar principal_id: The principal ID of resource identity.
193    :vartype principal_id: str
194    :ivar tenant_id: The tenant ID of resource.
195    :vartype tenant_id: str
196    :param type: Required. The identity type. Possible values include: "None", "SystemAssigned".
197    :type type: str or ~azure.mgmt.search.models.IdentityType
198    """
199
200    _validation = {
201        'principal_id': {'readonly': True},
202        'tenant_id': {'readonly': True},
203        'type': {'required': True},
204    }
205
206    _attribute_map = {
207        'principal_id': {'key': 'principalId', 'type': 'str'},
208        'tenant_id': {'key': 'tenantId', 'type': 'str'},
209        'type': {'key': 'type', 'type': 'str'},
210    }
211
212    def __init__(
213        self,
214        *,
215        type: Union[str, "IdentityType"],
216        **kwargs
217    ):
218        super(Identity, self).__init__(**kwargs)
219        self.principal_id = None
220        self.tenant_id = None
221        self.type = type
222
223
224class IpRule(msrest.serialization.Model):
225    """The IP restriction rule of the Azure Cognitive Search service.
226
227    :param value: Value corresponding to a single IPv4 address (eg., 123.1.2.3) or an IP range in
228     CIDR format (eg., 123.1.2.3/24) to be allowed.
229    :type value: str
230    """
231
232    _attribute_map = {
233        'value': {'key': 'value', 'type': 'str'},
234    }
235
236    def __init__(
237        self,
238        *,
239        value: Optional[str] = None,
240        **kwargs
241    ):
242        super(IpRule, self).__init__(**kwargs)
243        self.value = value
244
245
246class ListQueryKeysResult(msrest.serialization.Model):
247    """Response containing the query API keys for a given Azure Cognitive Search service.
248
249    Variables are only populated by the server, and will be ignored when sending a request.
250
251    :ivar value: The query keys for the Azure Cognitive Search service.
252    :vartype value: list[~azure.mgmt.search.models.QueryKey]
253    :ivar next_link: Request URL that can be used to query next page of query keys. Returned when
254     the total number of requested query keys exceed maximum page size.
255    :vartype next_link: str
256    """
257
258    _validation = {
259        'value': {'readonly': True},
260        'next_link': {'readonly': True},
261    }
262
263    _attribute_map = {
264        'value': {'key': 'value', 'type': '[QueryKey]'},
265        'next_link': {'key': 'nextLink', 'type': 'str'},
266    }
267
268    def __init__(
269        self,
270        **kwargs
271    ):
272        super(ListQueryKeysResult, self).__init__(**kwargs)
273        self.value = None
274        self.next_link = None
275
276
277class NetworkRuleSet(msrest.serialization.Model):
278    """Network specific rules that determine how the Azure Cognitive Search service may be reached.
279
280    :param ip_rules: A list of IP restriction rules that defines the inbound network(s) with
281     allowing access to the search service endpoint. At the meantime, all other public IP networks
282     are blocked by the firewall. These restriction rules are applied only when the
283     'publicNetworkAccess' of the search service is 'enabled'; otherwise, traffic over public
284     interface is not allowed even with any public IP rules, and private endpoint connections would
285     be the exclusive access method.
286    :type ip_rules: list[~azure.mgmt.search.models.IpRule]
287    """
288
289    _attribute_map = {
290        'ip_rules': {'key': 'ipRules', 'type': '[IpRule]'},
291    }
292
293    def __init__(
294        self,
295        *,
296        ip_rules: Optional[List["IpRule"]] = None,
297        **kwargs
298    ):
299        super(NetworkRuleSet, self).__init__(**kwargs)
300        self.ip_rules = ip_rules
301
302
303class Operation(msrest.serialization.Model):
304    """Describes a REST API operation.
305
306    Variables are only populated by the server, and will be ignored when sending a request.
307
308    :ivar name: The name of the operation. This name is of the form
309     {provider}/{resource}/{operation}.
310    :vartype name: str
311    :ivar display: The object that describes the operation.
312    :vartype display: ~azure.mgmt.search.models.OperationDisplay
313    """
314
315    _validation = {
316        'name': {'readonly': True},
317        'display': {'readonly': True},
318    }
319
320    _attribute_map = {
321        'name': {'key': 'name', 'type': 'str'},
322        'display': {'key': 'display', 'type': 'OperationDisplay'},
323    }
324
325    def __init__(
326        self,
327        **kwargs
328    ):
329        super(Operation, self).__init__(**kwargs)
330        self.name = None
331        self.display = None
332
333
334class OperationDisplay(msrest.serialization.Model):
335    """The object that describes the operation.
336
337    Variables are only populated by the server, and will be ignored when sending a request.
338
339    :ivar provider: The friendly name of the resource provider.
340    :vartype provider: str
341    :ivar operation: The operation type: read, write, delete, listKeys/action, etc.
342    :vartype operation: str
343    :ivar resource: The resource type on which the operation is performed.
344    :vartype resource: str
345    :ivar description: The friendly name of the operation.
346    :vartype description: str
347    """
348
349    _validation = {
350        'provider': {'readonly': True},
351        'operation': {'readonly': True},
352        'resource': {'readonly': True},
353        'description': {'readonly': True},
354    }
355
356    _attribute_map = {
357        'provider': {'key': 'provider', 'type': 'str'},
358        'operation': {'key': 'operation', 'type': 'str'},
359        'resource': {'key': 'resource', 'type': 'str'},
360        'description': {'key': 'description', 'type': 'str'},
361    }
362
363    def __init__(
364        self,
365        **kwargs
366    ):
367        super(OperationDisplay, self).__init__(**kwargs)
368        self.provider = None
369        self.operation = None
370        self.resource = None
371        self.description = None
372
373
374class OperationListResult(msrest.serialization.Model):
375    """The result of the request to list REST API operations. It contains a list of operations and a URL  to get the next set of results.
376
377    Variables are only populated by the server, and will be ignored when sending a request.
378
379    :ivar value: The list of operations supported by the resource provider.
380    :vartype value: list[~azure.mgmt.search.models.Operation]
381    :ivar next_link: The URL to get the next set of operation list results, if any.
382    :vartype next_link: str
383    """
384
385    _validation = {
386        'value': {'readonly': True},
387        'next_link': {'readonly': True},
388    }
389
390    _attribute_map = {
391        'value': {'key': 'value', 'type': '[Operation]'},
392        'next_link': {'key': 'nextLink', 'type': 'str'},
393    }
394
395    def __init__(
396        self,
397        **kwargs
398    ):
399        super(OperationListResult, self).__init__(**kwargs)
400        self.value = None
401        self.next_link = None
402
403
404class Resource(msrest.serialization.Model):
405    """Common fields that are returned in the response for all Azure Resource Manager resources.
406
407    Variables are only populated by the server, and will be ignored when sending a request.
408
409    :ivar id: Fully qualified resource ID for the resource. Ex -
410     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
411    :vartype id: str
412    :ivar name: The name of the resource.
413    :vartype name: str
414    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
415     "Microsoft.Storage/storageAccounts".
416    :vartype type: str
417    """
418
419    _validation = {
420        'id': {'readonly': True},
421        'name': {'readonly': True},
422        'type': {'readonly': True},
423    }
424
425    _attribute_map = {
426        'id': {'key': 'id', 'type': 'str'},
427        'name': {'key': 'name', 'type': 'str'},
428        'type': {'key': 'type', 'type': 'str'},
429    }
430
431    def __init__(
432        self,
433        **kwargs
434    ):
435        super(Resource, self).__init__(**kwargs)
436        self.id = None
437        self.name = None
438        self.type = None
439
440
441class PrivateEndpointConnection(Resource):
442    """Describes an existing Private Endpoint connection to the Azure Cognitive Search service.
443
444    Variables are only populated by the server, and will be ignored when sending a request.
445
446    :ivar id: Fully qualified resource ID for the resource. Ex -
447     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
448    :vartype id: str
449    :ivar name: The name of the resource.
450    :vartype name: str
451    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
452     "Microsoft.Storage/storageAccounts".
453    :vartype type: str
454    :param properties: Describes the properties of an existing Private Endpoint connection to the
455     Azure Cognitive Search service.
456    :type properties: ~azure.mgmt.search.models.PrivateEndpointConnectionProperties
457    """
458
459    _validation = {
460        'id': {'readonly': True},
461        'name': {'readonly': True},
462        'type': {'readonly': True},
463    }
464
465    _attribute_map = {
466        'id': {'key': 'id', 'type': 'str'},
467        'name': {'key': 'name', 'type': 'str'},
468        'type': {'key': 'type', 'type': 'str'},
469        'properties': {'key': 'properties', 'type': 'PrivateEndpointConnectionProperties'},
470    }
471
472    def __init__(
473        self,
474        *,
475        properties: Optional["PrivateEndpointConnectionProperties"] = None,
476        **kwargs
477    ):
478        super(PrivateEndpointConnection, self).__init__(**kwargs)
479        self.properties = properties
480
481
482class PrivateEndpointConnectionListResult(msrest.serialization.Model):
483    """Response containing a list of Private Endpoint connections.
484
485    Variables are only populated by the server, and will be ignored when sending a request.
486
487    :ivar value: The list of Private Endpoint connections.
488    :vartype value: list[~azure.mgmt.search.models.PrivateEndpointConnection]
489    :ivar next_link: Request URL that can be used to query next page of private endpoint
490     connections. Returned when the total number of requested private endpoint connections exceed
491     maximum page size.
492    :vartype next_link: str
493    """
494
495    _validation = {
496        'value': {'readonly': True},
497        'next_link': {'readonly': True},
498    }
499
500    _attribute_map = {
501        'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'},
502        'next_link': {'key': 'nextLink', 'type': 'str'},
503    }
504
505    def __init__(
506        self,
507        **kwargs
508    ):
509        super(PrivateEndpointConnectionListResult, self).__init__(**kwargs)
510        self.value = None
511        self.next_link = None
512
513
514class PrivateEndpointConnectionProperties(msrest.serialization.Model):
515    """Describes the properties of an existing Private Endpoint connection to the Azure Cognitive Search service.
516
517    :param private_endpoint: The private endpoint resource from Microsoft.Network provider.
518    :type private_endpoint:
519     ~azure.mgmt.search.models.PrivateEndpointConnectionPropertiesPrivateEndpoint
520    :param private_link_service_connection_state: Describes the current state of an existing
521     Private Link Service connection to the Azure Private Endpoint.
522    :type private_link_service_connection_state:
523     ~azure.mgmt.search.models.PrivateEndpointConnectionPropertiesPrivateLinkServiceConnectionState
524    """
525
526    _attribute_map = {
527        'private_endpoint': {'key': 'privateEndpoint', 'type': 'PrivateEndpointConnectionPropertiesPrivateEndpoint'},
528        'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'PrivateEndpointConnectionPropertiesPrivateLinkServiceConnectionState'},
529    }
530
531    def __init__(
532        self,
533        *,
534        private_endpoint: Optional["PrivateEndpointConnectionPropertiesPrivateEndpoint"] = None,
535        private_link_service_connection_state: Optional["PrivateEndpointConnectionPropertiesPrivateLinkServiceConnectionState"] = None,
536        **kwargs
537    ):
538        super(PrivateEndpointConnectionProperties, self).__init__(**kwargs)
539        self.private_endpoint = private_endpoint
540        self.private_link_service_connection_state = private_link_service_connection_state
541
542
543class PrivateEndpointConnectionPropertiesPrivateEndpoint(msrest.serialization.Model):
544    """The private endpoint resource from Microsoft.Network provider.
545
546    :param id: The resource id of the private endpoint resource from Microsoft.Network provider.
547    :type id: str
548    """
549
550    _attribute_map = {
551        'id': {'key': 'id', 'type': 'str'},
552    }
553
554    def __init__(
555        self,
556        *,
557        id: Optional[str] = None,
558        **kwargs
559    ):
560        super(PrivateEndpointConnectionPropertiesPrivateEndpoint, self).__init__(**kwargs)
561        self.id = id
562
563
564class PrivateEndpointConnectionPropertiesPrivateLinkServiceConnectionState(msrest.serialization.Model):
565    """Describes the current state of an existing Private Link Service connection to the Azure Private Endpoint.
566
567    :param status: Status of the the private link service connection. Can be Pending, Approved,
568     Rejected, or Disconnected. Possible values include: "Pending", "Approved", "Rejected",
569     "Disconnected".
570    :type status: str or ~azure.mgmt.search.models.PrivateLinkServiceConnectionStatus
571    :param description: The description for the private link service connection state.
572    :type description: str
573    :param actions_required: A description of any extra actions that may be required.
574    :type actions_required: str
575    """
576
577    _attribute_map = {
578        'status': {'key': 'status', 'type': 'str'},
579        'description': {'key': 'description', 'type': 'str'},
580        'actions_required': {'key': 'actionsRequired', 'type': 'str'},
581    }
582
583    def __init__(
584        self,
585        *,
586        status: Optional[Union[str, "PrivateLinkServiceConnectionStatus"]] = None,
587        description: Optional[str] = None,
588        actions_required: Optional[str] = "None",
589        **kwargs
590    ):
591        super(PrivateEndpointConnectionPropertiesPrivateLinkServiceConnectionState, self).__init__(**kwargs)
592        self.status = status
593        self.description = description
594        self.actions_required = actions_required
595
596
597class PrivateLinkResource(Resource):
598    """Describes a supported private link resource for the Azure Cognitive Search service.
599
600    Variables are only populated by the server, and will be ignored when sending a request.
601
602    :ivar id: Fully qualified resource ID for the resource. Ex -
603     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
604    :vartype id: str
605    :ivar name: The name of the resource.
606    :vartype name: str
607    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
608     "Microsoft.Storage/storageAccounts".
609    :vartype type: str
610    :ivar properties: Describes the properties of a supported private link resource for the Azure
611     Cognitive Search service.
612    :vartype properties: ~azure.mgmt.search.models.PrivateLinkResourceProperties
613    """
614
615    _validation = {
616        'id': {'readonly': True},
617        'name': {'readonly': True},
618        'type': {'readonly': True},
619        'properties': {'readonly': True},
620    }
621
622    _attribute_map = {
623        'id': {'key': 'id', 'type': 'str'},
624        'name': {'key': 'name', 'type': 'str'},
625        'type': {'key': 'type', 'type': 'str'},
626        'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'},
627    }
628
629    def __init__(
630        self,
631        **kwargs
632    ):
633        super(PrivateLinkResource, self).__init__(**kwargs)
634        self.properties = None
635
636
637class PrivateLinkResourceProperties(msrest.serialization.Model):
638    """Describes the properties of a supported private link resource for the Azure Cognitive Search service. For a given API version, this represents the 'supported' groupIds when creating a shared private link resource.
639
640    Variables are only populated by the server, and will be ignored when sending a request.
641
642    :ivar group_id: The group ID of the private link resource.
643    :vartype group_id: str
644    :ivar required_members: The list of required members of the private link resource.
645    :vartype required_members: list[str]
646    :ivar required_zone_names: The list of required DNS zone names of the private link resource.
647    :vartype required_zone_names: list[str]
648    :ivar shareable_private_link_resource_types: The list of resources that are onboarded to
649     private link service, that are supported by Azure Cognitive Search.
650    :vartype shareable_private_link_resource_types:
651     list[~azure.mgmt.search.models.ShareablePrivateLinkResourceType]
652    """
653
654    _validation = {
655        'group_id': {'readonly': True},
656        'required_members': {'readonly': True},
657        'required_zone_names': {'readonly': True},
658        'shareable_private_link_resource_types': {'readonly': True},
659    }
660
661    _attribute_map = {
662        'group_id': {'key': 'groupId', 'type': 'str'},
663        'required_members': {'key': 'requiredMembers', 'type': '[str]'},
664        'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'},
665        'shareable_private_link_resource_types': {'key': 'shareablePrivateLinkResourceTypes', 'type': '[ShareablePrivateLinkResourceType]'},
666    }
667
668    def __init__(
669        self,
670        **kwargs
671    ):
672        super(PrivateLinkResourceProperties, self).__init__(**kwargs)
673        self.group_id = None
674        self.required_members = None
675        self.required_zone_names = None
676        self.shareable_private_link_resource_types = None
677
678
679class PrivateLinkResourcesResult(msrest.serialization.Model):
680    """Response containing a list of supported Private Link Resources.
681
682    Variables are only populated by the server, and will be ignored when sending a request.
683
684    :ivar value: The list of supported Private Link Resources.
685    :vartype value: list[~azure.mgmt.search.models.PrivateLinkResource]
686    """
687
688    _validation = {
689        'value': {'readonly': True},
690    }
691
692    _attribute_map = {
693        'value': {'key': 'value', 'type': '[PrivateLinkResource]'},
694    }
695
696    def __init__(
697        self,
698        **kwargs
699    ):
700        super(PrivateLinkResourcesResult, self).__init__(**kwargs)
701        self.value = None
702
703
704class QueryKey(msrest.serialization.Model):
705    """Describes an API key for a given Azure Cognitive Search service that has permissions for query operations only.
706
707    Variables are only populated by the server, and will be ignored when sending a request.
708
709    :ivar name: The name of the query API key; may be empty.
710    :vartype name: str
711    :ivar key: The value of the query API key.
712    :vartype key: str
713    """
714
715    _validation = {
716        'name': {'readonly': True},
717        'key': {'readonly': True},
718    }
719
720    _attribute_map = {
721        'name': {'key': 'name', 'type': 'str'},
722        'key': {'key': 'key', 'type': 'str'},
723    }
724
725    def __init__(
726        self,
727        **kwargs
728    ):
729        super(QueryKey, self).__init__(**kwargs)
730        self.name = None
731        self.key = None
732
733
734class SearchManagementRequestOptions(msrest.serialization.Model):
735    """Parameter group.
736
737    :param client_request_id: A client-generated GUID value that identifies this request. If
738     specified, this will be included in response information as a way to track the request.
739    :type client_request_id: str
740    """
741
742    _attribute_map = {
743        'client_request_id': {'key': 'clientRequestId', 'type': 'str'},
744    }
745
746    def __init__(
747        self,
748        *,
749        client_request_id: Optional[str] = None,
750        **kwargs
751    ):
752        super(SearchManagementRequestOptions, self).__init__(**kwargs)
753        self.client_request_id = client_request_id
754
755
756class TrackedResource(Resource):
757    """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'.
758
759    Variables are only populated by the server, and will be ignored when sending a request.
760
761    All required parameters must be populated in order to send to Azure.
762
763    :ivar id: Fully qualified resource ID for the resource. Ex -
764     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
765    :vartype id: str
766    :ivar name: The name of the resource.
767    :vartype name: str
768    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
769     "Microsoft.Storage/storageAccounts".
770    :vartype type: str
771    :param tags: A set of tags. Resource tags.
772    :type tags: dict[str, str]
773    :param location: Required. The geo-location where the resource lives.
774    :type location: str
775    """
776
777    _validation = {
778        'id': {'readonly': True},
779        'name': {'readonly': True},
780        'type': {'readonly': True},
781        'location': {'required': True},
782    }
783
784    _attribute_map = {
785        'id': {'key': 'id', 'type': 'str'},
786        'name': {'key': 'name', 'type': 'str'},
787        'type': {'key': 'type', 'type': 'str'},
788        'tags': {'key': 'tags', 'type': '{str}'},
789        'location': {'key': 'location', 'type': 'str'},
790    }
791
792    def __init__(
793        self,
794        *,
795        location: str,
796        tags: Optional[Dict[str, str]] = None,
797        **kwargs
798    ):
799        super(TrackedResource, self).__init__(**kwargs)
800        self.tags = tags
801        self.location = location
802
803
804class SearchService(TrackedResource):
805    """Describes an Azure Cognitive Search service and its current state.
806
807    Variables are only populated by the server, and will be ignored when sending a request.
808
809    All required parameters must be populated in order to send to Azure.
810
811    :ivar id: Fully qualified resource ID for the resource. Ex -
812     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
813    :vartype id: str
814    :ivar name: The name of the resource.
815    :vartype name: str
816    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
817     "Microsoft.Storage/storageAccounts".
818    :vartype type: str
819    :param tags: A set of tags. Resource tags.
820    :type tags: dict[str, str]
821    :param location: Required. The geo-location where the resource lives.
822    :type location: str
823    :param sku: The SKU of the Search Service, which determines price tier and capacity limits.
824     This property is required when creating a new Search Service.
825    :type sku: ~azure.mgmt.search.models.Sku
826    :param identity: The identity of the resource.
827    :type identity: ~azure.mgmt.search.models.Identity
828    :param replica_count: The number of replicas in the search service. If specified, it must be a
829     value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
830    :type replica_count: int
831    :param partition_count: The number of partitions in the search service; if specified, it can be
832     1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3'
833     services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
834    :type partition_count: int
835    :param hosting_mode: Applicable only for the standard3 SKU. You can set this property to enable
836     up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the
837     maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default'
838     or 'highDensity'. For all other SKUs, this value must be 'default'. Possible values include:
839     "default", "highDensity". Default value: "default".
840    :type hosting_mode: str or ~azure.mgmt.search.models.HostingMode
841    :param public_network_access: This value can be set to 'enabled' to avoid breaking changes on
842     existing customer resources and templates. If set to 'disabled', traffic over public interface
843     is not allowed, and private endpoint connections would be the exclusive access method. Possible
844     values include: "enabled", "disabled". Default value: "enabled".
845    :type public_network_access: str or ~azure.mgmt.search.models.PublicNetworkAccess
846    :ivar status: The status of the search service. Possible values include: 'running': The search
847     service is running and no provisioning operations are underway. 'provisioning': The search
848     service is being provisioned or scaled up or down. 'deleting': The search service is being
849     deleted. 'degraded': The search service is degraded. This can occur when the underlying search
850     units are not healthy. The search service is most likely operational, but performance might be
851     slow and some requests might be dropped. 'disabled': The search service is disabled. In this
852     state, the service will reject all API requests. 'error': The search service is in an error
853     state. If your service is in the degraded, disabled, or error states, it means the Azure
854     Cognitive Search team is actively investigating the underlying issue. Dedicated services in
855     these states are still chargeable based on the number of search units provisioned. Possible
856     values include: "running", "provisioning", "deleting", "degraded", "disabled", "error".
857    :vartype status: str or ~azure.mgmt.search.models.SearchServiceStatus
858    :ivar status_details: The details of the search service status.
859    :vartype status_details: str
860    :ivar provisioning_state: The state of the last provisioning operation performed on the search
861     service. Provisioning is an intermediate state that occurs while service capacity is being
862     established. After capacity is set up, provisioningState changes to either 'succeeded' or
863     'failed'. Client applications can poll provisioning status (the recommended polling interval is
864     from 30 seconds to one minute) by using the Get Search Service operation to see when an
865     operation is completed. If you are using the free service, this value tends to come back as
866     'succeeded' directly in the call to Create search service. This is because the free service
867     uses capacity that is already set up. Possible values include: "succeeded", "provisioning",
868     "failed".
869    :vartype provisioning_state: str or ~azure.mgmt.search.models.ProvisioningState
870    :param network_rule_set: Network specific rules that determine how the Azure Cognitive Search
871     service may be reached.
872    :type network_rule_set: ~azure.mgmt.search.models.NetworkRuleSet
873    :ivar private_endpoint_connections: The list of private endpoint connections to the Azure
874     Cognitive Search service.
875    :vartype private_endpoint_connections:
876     list[~azure.mgmt.search.models.PrivateEndpointConnection]
877    :ivar shared_private_link_resources: The list of shared private link resources managed by the
878     Azure Cognitive Search service.
879    :vartype shared_private_link_resources:
880     list[~azure.mgmt.search.models.SharedPrivateLinkResource]
881    """
882
883    _validation = {
884        'id': {'readonly': True},
885        'name': {'readonly': True},
886        'type': {'readonly': True},
887        'location': {'required': True},
888        'replica_count': {'maximum': 12, 'minimum': 1},
889        'partition_count': {'maximum': 12, 'minimum': 1},
890        'status': {'readonly': True},
891        'status_details': {'readonly': True},
892        'provisioning_state': {'readonly': True},
893        'private_endpoint_connections': {'readonly': True},
894        'shared_private_link_resources': {'readonly': True},
895    }
896
897    _attribute_map = {
898        'id': {'key': 'id', 'type': 'str'},
899        'name': {'key': 'name', 'type': 'str'},
900        'type': {'key': 'type', 'type': 'str'},
901        'tags': {'key': 'tags', 'type': '{str}'},
902        'location': {'key': 'location', 'type': 'str'},
903        'sku': {'key': 'sku', 'type': 'Sku'},
904        'identity': {'key': 'identity', 'type': 'Identity'},
905        'replica_count': {'key': 'properties.replicaCount', 'type': 'int'},
906        'partition_count': {'key': 'properties.partitionCount', 'type': 'int'},
907        'hosting_mode': {'key': 'properties.hostingMode', 'type': 'str'},
908        'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'},
909        'status': {'key': 'properties.status', 'type': 'str'},
910        'status_details': {'key': 'properties.statusDetails', 'type': 'str'},
911        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
912        'network_rule_set': {'key': 'properties.networkRuleSet', 'type': 'NetworkRuleSet'},
913        'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'},
914        'shared_private_link_resources': {'key': 'properties.sharedPrivateLinkResources', 'type': '[SharedPrivateLinkResource]'},
915    }
916
917    def __init__(
918        self,
919        *,
920        location: str,
921        tags: Optional[Dict[str, str]] = None,
922        sku: Optional["Sku"] = None,
923        identity: Optional["Identity"] = None,
924        replica_count: Optional[int] = 1,
925        partition_count: Optional[int] = 1,
926        hosting_mode: Optional[Union[str, "HostingMode"]] = "default",
927        public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = "enabled",
928        network_rule_set: Optional["NetworkRuleSet"] = None,
929        **kwargs
930    ):
931        super(SearchService, self).__init__(tags=tags, location=location, **kwargs)
932        self.sku = sku
933        self.identity = identity
934        self.replica_count = replica_count
935        self.partition_count = partition_count
936        self.hosting_mode = hosting_mode
937        self.public_network_access = public_network_access
938        self.status = None
939        self.status_details = None
940        self.provisioning_state = None
941        self.network_rule_set = network_rule_set
942        self.private_endpoint_connections = None
943        self.shared_private_link_resources = None
944
945
946class SearchServiceListResult(msrest.serialization.Model):
947    """Response containing a list of Azure Cognitive Search services.
948
949    Variables are only populated by the server, and will be ignored when sending a request.
950
951    :ivar value: The list of search services.
952    :vartype value: list[~azure.mgmt.search.models.SearchService]
953    :ivar next_link: Request URL that can be used to query next page of search services. Returned
954     when the total number of requested search services exceed maximum page size.
955    :vartype next_link: str
956    """
957
958    _validation = {
959        'value': {'readonly': True},
960        'next_link': {'readonly': True},
961    }
962
963    _attribute_map = {
964        'value': {'key': 'value', 'type': '[SearchService]'},
965        'next_link': {'key': 'nextLink', 'type': 'str'},
966    }
967
968    def __init__(
969        self,
970        **kwargs
971    ):
972        super(SearchServiceListResult, self).__init__(**kwargs)
973        self.value = None
974        self.next_link = None
975
976
977class SearchServiceUpdate(Resource):
978    """The parameters used to update an Azure Cognitive Search service.
979
980    Variables are only populated by the server, and will be ignored when sending a request.
981
982    :ivar id: Fully qualified resource ID for the resource. Ex -
983     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
984    :vartype id: str
985    :ivar name: The name of the resource.
986    :vartype name: str
987    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
988     "Microsoft.Storage/storageAccounts".
989    :vartype type: str
990    :param sku: The SKU of the Search Service, which determines price tier and capacity limits.
991     This property is required when creating a new Search Service.
992    :type sku: ~azure.mgmt.search.models.Sku
993    :param location: The geographic location of the resource. This must be one of the supported and
994     registered Azure Geo Regions (for example, West US, East US, Southeast Asia, and so forth).
995     This property is required when creating a new resource.
996    :type location: str
997    :param tags: A set of tags. Tags to help categorize the resource in the Azure portal.
998    :type tags: dict[str, str]
999    :param identity: The identity of the resource.
1000    :type identity: ~azure.mgmt.search.models.Identity
1001    :param replica_count: The number of replicas in the search service. If specified, it must be a
1002     value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
1003    :type replica_count: int
1004    :param partition_count: The number of partitions in the search service; if specified, it can be
1005     1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3'
1006     services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
1007    :type partition_count: int
1008    :param hosting_mode: Applicable only for the standard3 SKU. You can set this property to enable
1009     up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the
1010     maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default'
1011     or 'highDensity'. For all other SKUs, this value must be 'default'. Possible values include:
1012     "default", "highDensity". Default value: "default".
1013    :type hosting_mode: str or ~azure.mgmt.search.models.HostingMode
1014    :param public_network_access: This value can be set to 'enabled' to avoid breaking changes on
1015     existing customer resources and templates. If set to 'disabled', traffic over public interface
1016     is not allowed, and private endpoint connections would be the exclusive access method. Possible
1017     values include: "enabled", "disabled". Default value: "enabled".
1018    :type public_network_access: str or ~azure.mgmt.search.models.PublicNetworkAccess
1019    :ivar status: The status of the search service. Possible values include: 'running': The search
1020     service is running and no provisioning operations are underway. 'provisioning': The search
1021     service is being provisioned or scaled up or down. 'deleting': The search service is being
1022     deleted. 'degraded': The search service is degraded. This can occur when the underlying search
1023     units are not healthy. The search service is most likely operational, but performance might be
1024     slow and some requests might be dropped. 'disabled': The search service is disabled. In this
1025     state, the service will reject all API requests. 'error': The search service is in an error
1026     state. If your service is in the degraded, disabled, or error states, it means the Azure
1027     Cognitive Search team is actively investigating the underlying issue. Dedicated services in
1028     these states are still chargeable based on the number of search units provisioned. Possible
1029     values include: "running", "provisioning", "deleting", "degraded", "disabled", "error".
1030    :vartype status: str or ~azure.mgmt.search.models.SearchServiceStatus
1031    :ivar status_details: The details of the search service status.
1032    :vartype status_details: str
1033    :ivar provisioning_state: The state of the last provisioning operation performed on the search
1034     service. Provisioning is an intermediate state that occurs while service capacity is being
1035     established. After capacity is set up, provisioningState changes to either 'succeeded' or
1036     'failed'. Client applications can poll provisioning status (the recommended polling interval is
1037     from 30 seconds to one minute) by using the Get Search Service operation to see when an
1038     operation is completed. If you are using the free service, this value tends to come back as
1039     'succeeded' directly in the call to Create search service. This is because the free service
1040     uses capacity that is already set up. Possible values include: "succeeded", "provisioning",
1041     "failed".
1042    :vartype provisioning_state: str or ~azure.mgmt.search.models.ProvisioningState
1043    :param network_rule_set: Network specific rules that determine how the Azure Cognitive Search
1044     service may be reached.
1045    :type network_rule_set: ~azure.mgmt.search.models.NetworkRuleSet
1046    :ivar private_endpoint_connections: The list of private endpoint connections to the Azure
1047     Cognitive Search service.
1048    :vartype private_endpoint_connections:
1049     list[~azure.mgmt.search.models.PrivateEndpointConnection]
1050    :ivar shared_private_link_resources: The list of shared private link resources managed by the
1051     Azure Cognitive Search service.
1052    :vartype shared_private_link_resources:
1053     list[~azure.mgmt.search.models.SharedPrivateLinkResource]
1054    """
1055
1056    _validation = {
1057        'id': {'readonly': True},
1058        'name': {'readonly': True},
1059        'type': {'readonly': True},
1060        'replica_count': {'maximum': 12, 'minimum': 1},
1061        'partition_count': {'maximum': 12, 'minimum': 1},
1062        'status': {'readonly': True},
1063        'status_details': {'readonly': True},
1064        'provisioning_state': {'readonly': True},
1065        'private_endpoint_connections': {'readonly': True},
1066        'shared_private_link_resources': {'readonly': True},
1067    }
1068
1069    _attribute_map = {
1070        'id': {'key': 'id', 'type': 'str'},
1071        'name': {'key': 'name', 'type': 'str'},
1072        'type': {'key': 'type', 'type': 'str'},
1073        'sku': {'key': 'sku', 'type': 'Sku'},
1074        'location': {'key': 'location', 'type': 'str'},
1075        'tags': {'key': 'tags', 'type': '{str}'},
1076        'identity': {'key': 'identity', 'type': 'Identity'},
1077        'replica_count': {'key': 'properties.replicaCount', 'type': 'int'},
1078        'partition_count': {'key': 'properties.partitionCount', 'type': 'int'},
1079        'hosting_mode': {'key': 'properties.hostingMode', 'type': 'str'},
1080        'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'},
1081        'status': {'key': 'properties.status', 'type': 'str'},
1082        'status_details': {'key': 'properties.statusDetails', 'type': 'str'},
1083        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
1084        'network_rule_set': {'key': 'properties.networkRuleSet', 'type': 'NetworkRuleSet'},
1085        'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'},
1086        'shared_private_link_resources': {'key': 'properties.sharedPrivateLinkResources', 'type': '[SharedPrivateLinkResource]'},
1087    }
1088
1089    def __init__(
1090        self,
1091        *,
1092        sku: Optional["Sku"] = None,
1093        location: Optional[str] = None,
1094        tags: Optional[Dict[str, str]] = None,
1095        identity: Optional["Identity"] = None,
1096        replica_count: Optional[int] = 1,
1097        partition_count: Optional[int] = 1,
1098        hosting_mode: Optional[Union[str, "HostingMode"]] = "default",
1099        public_network_access: Optional[Union[str, "PublicNetworkAccess"]] = "enabled",
1100        network_rule_set: Optional["NetworkRuleSet"] = None,
1101        **kwargs
1102    ):
1103        super(SearchServiceUpdate, self).__init__(**kwargs)
1104        self.sku = sku
1105        self.location = location
1106        self.tags = tags
1107        self.identity = identity
1108        self.replica_count = replica_count
1109        self.partition_count = partition_count
1110        self.hosting_mode = hosting_mode
1111        self.public_network_access = public_network_access
1112        self.status = None
1113        self.status_details = None
1114        self.provisioning_state = None
1115        self.network_rule_set = network_rule_set
1116        self.private_endpoint_connections = None
1117        self.shared_private_link_resources = None
1118
1119
1120class ShareablePrivateLinkResourceProperties(msrest.serialization.Model):
1121    """Describes the properties of a resource type that has been onboarded to private link service, supported by Azure Cognitive Search.
1122
1123    Variables are only populated by the server, and will be ignored when sending a request.
1124
1125    :ivar type: The resource provider type for the resource that has been onboarded to private link
1126     service, supported by Azure Cognitive Search.
1127    :vartype type: str
1128    :ivar group_id: The resource provider group id for the resource that has been onboarded to
1129     private link service, supported by Azure Cognitive Search.
1130    :vartype group_id: str
1131    :ivar description: The description of the resource type that has been onboarded to private link
1132     service, supported by Azure Cognitive Search.
1133    :vartype description: str
1134    """
1135
1136    _validation = {
1137        'type': {'readonly': True},
1138        'group_id': {'readonly': True},
1139        'description': {'readonly': True},
1140    }
1141
1142    _attribute_map = {
1143        'type': {'key': 'type', 'type': 'str'},
1144        'group_id': {'key': 'groupId', 'type': 'str'},
1145        'description': {'key': 'description', 'type': 'str'},
1146    }
1147
1148    def __init__(
1149        self,
1150        **kwargs
1151    ):
1152        super(ShareablePrivateLinkResourceProperties, self).__init__(**kwargs)
1153        self.type = None
1154        self.group_id = None
1155        self.description = None
1156
1157
1158class ShareablePrivateLinkResourceType(msrest.serialization.Model):
1159    """Describes an resource type that has been onboarded to private link service, supported by Azure Cognitive Search.
1160
1161    Variables are only populated by the server, and will be ignored when sending a request.
1162
1163    :ivar name: The name of the resource type that has been onboarded to private link service,
1164     supported by Azure Cognitive Search.
1165    :vartype name: str
1166    :ivar properties: Describes the properties of a resource type that has been onboarded to
1167     private link service, supported by Azure Cognitive Search.
1168    :vartype properties: ~azure.mgmt.search.models.ShareablePrivateLinkResourceProperties
1169    """
1170
1171    _validation = {
1172        'name': {'readonly': True},
1173        'properties': {'readonly': True},
1174    }
1175
1176    _attribute_map = {
1177        'name': {'key': 'name', 'type': 'str'},
1178        'properties': {'key': 'properties', 'type': 'ShareablePrivateLinkResourceProperties'},
1179    }
1180
1181    def __init__(
1182        self,
1183        **kwargs
1184    ):
1185        super(ShareablePrivateLinkResourceType, self).__init__(**kwargs)
1186        self.name = None
1187        self.properties = None
1188
1189
1190class SharedPrivateLinkResource(Resource):
1191    """Describes a Shared Private Link Resource managed by the Azure Cognitive Search service.
1192
1193    Variables are only populated by the server, and will be ignored when sending a request.
1194
1195    :ivar id: Fully qualified resource ID for the resource. Ex -
1196     /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
1197    :vartype id: str
1198    :ivar name: The name of the resource.
1199    :vartype name: str
1200    :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
1201     "Microsoft.Storage/storageAccounts".
1202    :vartype type: str
1203    :param properties: Describes the properties of a Shared Private Link Resource managed by the
1204     Azure Cognitive Search service.
1205    :type properties: ~azure.mgmt.search.models.SharedPrivateLinkResourceProperties
1206    """
1207
1208    _validation = {
1209        'id': {'readonly': True},
1210        'name': {'readonly': True},
1211        'type': {'readonly': True},
1212    }
1213
1214    _attribute_map = {
1215        'id': {'key': 'id', 'type': 'str'},
1216        'name': {'key': 'name', 'type': 'str'},
1217        'type': {'key': 'type', 'type': 'str'},
1218        'properties': {'key': 'properties', 'type': 'SharedPrivateLinkResourceProperties'},
1219    }
1220
1221    def __init__(
1222        self,
1223        *,
1224        properties: Optional["SharedPrivateLinkResourceProperties"] = None,
1225        **kwargs
1226    ):
1227        super(SharedPrivateLinkResource, self).__init__(**kwargs)
1228        self.properties = properties
1229
1230
1231class SharedPrivateLinkResourceListResult(msrest.serialization.Model):
1232    """Response containing a list of Shared Private Link Resources.
1233
1234    Variables are only populated by the server, and will be ignored when sending a request.
1235
1236    :ivar value: The list of Shared Private Link Resources.
1237    :vartype value: list[~azure.mgmt.search.models.SharedPrivateLinkResource]
1238    :param next_link: The URL to get the next set of shared private link resources, if there are
1239     any.
1240    :type next_link: str
1241    """
1242
1243    _validation = {
1244        'value': {'readonly': True},
1245    }
1246
1247    _attribute_map = {
1248        'value': {'key': 'value', 'type': '[SharedPrivateLinkResource]'},
1249        'next_link': {'key': 'nextLink', 'type': 'str'},
1250    }
1251
1252    def __init__(
1253        self,
1254        *,
1255        next_link: Optional[str] = None,
1256        **kwargs
1257    ):
1258        super(SharedPrivateLinkResourceListResult, self).__init__(**kwargs)
1259        self.value = None
1260        self.next_link = next_link
1261
1262
1263class SharedPrivateLinkResourceProperties(msrest.serialization.Model):
1264    """Describes the properties of an existing Shared Private Link Resource managed by the Azure Cognitive Search service.
1265
1266    :param private_link_resource_id: The resource id of the resource the shared private link
1267     resource is for.
1268    :type private_link_resource_id: str
1269    :param group_id: The group id from the provider of resource the shared private link resource is
1270     for.
1271    :type group_id: str
1272    :param request_message: The request message for requesting approval of the shared private link
1273     resource.
1274    :type request_message: str
1275    :param resource_region: Optional. Can be used to specify the Azure Resource Manager location of
1276     the resource to which a shared private link is to be created. This is only required for those
1277     resources whose DNS configuration are regional (such as Azure Kubernetes Service).
1278    :type resource_region: str
1279    :param status: Status of the shared private link resource. Can be Pending, Approved, Rejected
1280     or Disconnected. Possible values include: "Pending", "Approved", "Rejected", "Disconnected".
1281    :type status: str or ~azure.mgmt.search.models.SharedPrivateLinkResourceStatus
1282    :param provisioning_state: The provisioning state of the shared private link resource. Can be
1283     Updating, Deleting, Failed, Succeeded or Incomplete. Possible values include: "Updating",
1284     "Deleting", "Failed", "Succeeded", "Incomplete".
1285    :type provisioning_state: str or
1286     ~azure.mgmt.search.models.SharedPrivateLinkResourceProvisioningState
1287    """
1288
1289    _attribute_map = {
1290        'private_link_resource_id': {'key': 'privateLinkResourceId', 'type': 'str'},
1291        'group_id': {'key': 'groupId', 'type': 'str'},
1292        'request_message': {'key': 'requestMessage', 'type': 'str'},
1293        'resource_region': {'key': 'resourceRegion', 'type': 'str'},
1294        'status': {'key': 'status', 'type': 'str'},
1295        'provisioning_state': {'key': 'provisioningState', 'type': 'str'},
1296    }
1297
1298    def __init__(
1299        self,
1300        *,
1301        private_link_resource_id: Optional[str] = None,
1302        group_id: Optional[str] = None,
1303        request_message: Optional[str] = None,
1304        resource_region: Optional[str] = None,
1305        status: Optional[Union[str, "SharedPrivateLinkResourceStatus"]] = None,
1306        provisioning_state: Optional[Union[str, "SharedPrivateLinkResourceProvisioningState"]] = None,
1307        **kwargs
1308    ):
1309        super(SharedPrivateLinkResourceProperties, self).__init__(**kwargs)
1310        self.private_link_resource_id = private_link_resource_id
1311        self.group_id = group_id
1312        self.request_message = request_message
1313        self.resource_region = resource_region
1314        self.status = status
1315        self.provisioning_state = provisioning_state
1316
1317
1318class Sku(msrest.serialization.Model):
1319    """Defines the SKU of an Azure Cognitive Search Service, which determines price tier and capacity limits.
1320
1321    :param name: The SKU of the search service. Valid values include: 'free': Shared service.
1322     'basic': Dedicated service with up to 3 replicas. 'standard': Dedicated service with up to 12
1323     partitions and 12 replicas. 'standard2': Similar to standard, but with more capacity per search
1324     unit. 'standard3': The largest Standard offering with up to 12 partitions and 12 replicas (or
1325     up to 3 partitions with more indexes if you also set the hostingMode property to
1326     'highDensity'). 'storage_optimized_l1': Supports 1TB per partition, up to 12 partitions.
1327     'storage_optimized_l2': Supports 2TB per partition, up to 12 partitions.'. Possible values
1328     include: "free", "basic", "standard", "standard2", "standard3", "storage_optimized_l1",
1329     "storage_optimized_l2".
1330    :type name: str or ~azure.mgmt.search.models.SkuName
1331    """
1332
1333    _attribute_map = {
1334        'name': {'key': 'name', 'type': 'str'},
1335    }
1336
1337    def __init__(
1338        self,
1339        *,
1340        name: Optional[Union[str, "SkuName"]] = None,
1341        **kwargs
1342    ):
1343        super(Sku, self).__init__(**kwargs)
1344        self.name = name
1345