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 azure.core.exceptions import HttpResponseError
10import msrest.serialization
11
12
13class AbnormalTimePeriod(msrest.serialization.Model):
14    """Class representing Abnormal Time Period identified in diagnosis.
15
16    :param start_time: Start time of the downtime.
17    :type start_time: ~datetime.datetime
18    :param end_time: End time of the downtime.
19    :type end_time: ~datetime.datetime
20    :param events: List of Possible Cause of downtime.
21    :type events: list[~azure.mgmt.web.v2020_09_01.models.DetectorAbnormalTimePeriod]
22    :param solutions: List of proposed solutions.
23    :type solutions: list[~azure.mgmt.web.v2020_09_01.models.Solution]
24    """
25
26    _attribute_map = {
27        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
28        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
29        'events': {'key': 'events', 'type': '[DetectorAbnormalTimePeriod]'},
30        'solutions': {'key': 'solutions', 'type': '[Solution]'},
31    }
32
33    def __init__(
34        self,
35        **kwargs
36    ):
37        super(AbnormalTimePeriod, self).__init__(**kwargs)
38        self.start_time = kwargs.get('start_time', None)
39        self.end_time = kwargs.get('end_time', None)
40        self.events = kwargs.get('events', None)
41        self.solutions = kwargs.get('solutions', None)
42
43
44class Address(msrest.serialization.Model):
45    """Address information for domain registration.
46
47    All required parameters must be populated in order to send to Azure.
48
49    :param address1: Required. First line of an Address.
50    :type address1: str
51    :param address2: The second line of the Address. Optional.
52    :type address2: str
53    :param city: Required. The city for the address.
54    :type city: str
55    :param country: Required. The country for the address.
56    :type country: str
57    :param postal_code: Required. The postal code for the address.
58    :type postal_code: str
59    :param state: Required. The state or province for the address.
60    :type state: str
61    """
62
63    _validation = {
64        'address1': {'required': True},
65        'city': {'required': True},
66        'country': {'required': True},
67        'postal_code': {'required': True},
68        'state': {'required': True},
69    }
70
71    _attribute_map = {
72        'address1': {'key': 'address1', 'type': 'str'},
73        'address2': {'key': 'address2', 'type': 'str'},
74        'city': {'key': 'city', 'type': 'str'},
75        'country': {'key': 'country', 'type': 'str'},
76        'postal_code': {'key': 'postalCode', 'type': 'str'},
77        'state': {'key': 'state', 'type': 'str'},
78    }
79
80    def __init__(
81        self,
82        **kwargs
83    ):
84        super(Address, self).__init__(**kwargs)
85        self.address1 = kwargs['address1']
86        self.address2 = kwargs.get('address2', None)
87        self.city = kwargs['city']
88        self.country = kwargs['country']
89        self.postal_code = kwargs['postal_code']
90        self.state = kwargs['state']
91
92
93class ProxyOnlyResource(msrest.serialization.Model):
94    """Azure proxy only resource. This resource is not tracked by Azure Resource Manager.
95
96    Variables are only populated by the server, and will be ignored when sending a request.
97
98    :ivar id: Resource Id.
99    :vartype id: str
100    :ivar name: Resource Name.
101    :vartype name: str
102    :param kind: Kind of resource.
103    :type kind: str
104    :ivar type: Resource type.
105    :vartype type: str
106    :ivar system_data: The system metadata relating to this resource.
107    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
108    """
109
110    _validation = {
111        'id': {'readonly': True},
112        'name': {'readonly': True},
113        'type': {'readonly': True},
114        'system_data': {'readonly': True},
115    }
116
117    _attribute_map = {
118        'id': {'key': 'id', 'type': 'str'},
119        'name': {'key': 'name', 'type': 'str'},
120        'kind': {'key': 'kind', 'type': 'str'},
121        'type': {'key': 'type', 'type': 'str'},
122        'system_data': {'key': 'systemData', 'type': 'SystemData'},
123    }
124
125    def __init__(
126        self,
127        **kwargs
128    ):
129        super(ProxyOnlyResource, self).__init__(**kwargs)
130        self.id = None
131        self.name = None
132        self.kind = kwargs.get('kind', None)
133        self.type = None
134        self.system_data = None
135
136
137class AddressResponse(ProxyOnlyResource):
138    """Describes main public IP address and any extra virtual IPs.
139
140    Variables are only populated by the server, and will be ignored when sending a request.
141
142    :ivar id: Resource Id.
143    :vartype id: str
144    :ivar name: Resource Name.
145    :vartype name: str
146    :param kind: Kind of resource.
147    :type kind: str
148    :ivar type: Resource type.
149    :vartype type: str
150    :ivar system_data: The system metadata relating to this resource.
151    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
152    :param service_ip_address: Main public virtual IP.
153    :type service_ip_address: str
154    :param internal_ip_address: Virtual Network internal IP address of the App Service Environment
155     if it is in internal load-balancing mode.
156    :type internal_ip_address: str
157    :param outbound_ip_addresses: IP addresses appearing on outbound connections.
158    :type outbound_ip_addresses: list[str]
159    :param vip_mappings: Additional virtual IPs.
160    :type vip_mappings: list[~azure.mgmt.web.v2020_09_01.models.VirtualIPMapping]
161    """
162
163    _validation = {
164        'id': {'readonly': True},
165        'name': {'readonly': True},
166        'type': {'readonly': True},
167        'system_data': {'readonly': True},
168    }
169
170    _attribute_map = {
171        'id': {'key': 'id', 'type': 'str'},
172        'name': {'key': 'name', 'type': 'str'},
173        'kind': {'key': 'kind', 'type': 'str'},
174        'type': {'key': 'type', 'type': 'str'},
175        'system_data': {'key': 'systemData', 'type': 'SystemData'},
176        'service_ip_address': {'key': 'properties.serviceIpAddress', 'type': 'str'},
177        'internal_ip_address': {'key': 'properties.internalIpAddress', 'type': 'str'},
178        'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': '[str]'},
179        'vip_mappings': {'key': 'properties.vipMappings', 'type': '[VirtualIPMapping]'},
180    }
181
182    def __init__(
183        self,
184        **kwargs
185    ):
186        super(AddressResponse, self).__init__(**kwargs)
187        self.service_ip_address = kwargs.get('service_ip_address', None)
188        self.internal_ip_address = kwargs.get('internal_ip_address', None)
189        self.outbound_ip_addresses = kwargs.get('outbound_ip_addresses', None)
190        self.vip_mappings = kwargs.get('vip_mappings', None)
191
192
193class AllowedAudiencesValidation(ProxyOnlyResource):
194    """AllowedAudiencesValidation.
195
196    Variables are only populated by the server, and will be ignored when sending a request.
197
198    :ivar id: Resource Id.
199    :vartype id: str
200    :ivar name: Resource Name.
201    :vartype name: str
202    :param kind: Kind of resource.
203    :type kind: str
204    :ivar type: Resource type.
205    :vartype type: str
206    :ivar system_data: The system metadata relating to this resource.
207    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
208    :param allowed_audiences:
209    :type allowed_audiences: list[str]
210    """
211
212    _validation = {
213        'id': {'readonly': True},
214        'name': {'readonly': True},
215        'type': {'readonly': True},
216        'system_data': {'readonly': True},
217    }
218
219    _attribute_map = {
220        'id': {'key': 'id', 'type': 'str'},
221        'name': {'key': 'name', 'type': 'str'},
222        'kind': {'key': 'kind', 'type': 'str'},
223        'type': {'key': 'type', 'type': 'str'},
224        'system_data': {'key': 'systemData', 'type': 'SystemData'},
225        'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'},
226    }
227
228    def __init__(
229        self,
230        **kwargs
231    ):
232        super(AllowedAudiencesValidation, self).__init__(**kwargs)
233        self.allowed_audiences = kwargs.get('allowed_audiences', None)
234
235
236class AnalysisData(msrest.serialization.Model):
237    """Class Representing Detector Evidence used for analysis.
238
239    :param source: Name of the Detector.
240    :type source: str
241    :param detector_definition: Detector Definition.
242    :type detector_definition: ~azure.mgmt.web.v2020_09_01.models.DetectorDefinition
243    :param metrics: Source Metrics.
244    :type metrics: list[~azure.mgmt.web.v2020_09_01.models.DiagnosticMetricSet]
245    :param data: Additional Source Data.
246    :type data: list[list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]]
247    :param detector_meta_data: Detector Meta Data.
248    :type detector_meta_data: ~azure.mgmt.web.v2020_09_01.models.ResponseMetaData
249    """
250
251    _attribute_map = {
252        'source': {'key': 'source', 'type': 'str'},
253        'detector_definition': {'key': 'detectorDefinition', 'type': 'DetectorDefinition'},
254        'metrics': {'key': 'metrics', 'type': '[DiagnosticMetricSet]'},
255        'data': {'key': 'data', 'type': '[[NameValuePair]]'},
256        'detector_meta_data': {'key': 'detectorMetaData', 'type': 'ResponseMetaData'},
257    }
258
259    def __init__(
260        self,
261        **kwargs
262    ):
263        super(AnalysisData, self).__init__(**kwargs)
264        self.source = kwargs.get('source', None)
265        self.detector_definition = kwargs.get('detector_definition', None)
266        self.metrics = kwargs.get('metrics', None)
267        self.data = kwargs.get('data', None)
268        self.detector_meta_data = kwargs.get('detector_meta_data', None)
269
270
271class AnalysisDefinition(ProxyOnlyResource):
272    """Definition of Analysis.
273
274    Variables are only populated by the server, and will be ignored when sending a request.
275
276    :ivar id: Resource Id.
277    :vartype id: str
278    :ivar name: Resource Name.
279    :vartype name: str
280    :param kind: Kind of resource.
281    :type kind: str
282    :ivar type: Resource type.
283    :vartype type: str
284    :ivar system_data: The system metadata relating to this resource.
285    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
286    :ivar description: Description of the Analysis.
287    :vartype description: str
288    """
289
290    _validation = {
291        'id': {'readonly': True},
292        'name': {'readonly': True},
293        'type': {'readonly': True},
294        'system_data': {'readonly': True},
295        'description': {'readonly': True},
296    }
297
298    _attribute_map = {
299        'id': {'key': 'id', 'type': 'str'},
300        'name': {'key': 'name', 'type': 'str'},
301        'kind': {'key': 'kind', 'type': 'str'},
302        'type': {'key': 'type', 'type': 'str'},
303        'system_data': {'key': 'systemData', 'type': 'SystemData'},
304        'description': {'key': 'properties.description', 'type': 'str'},
305    }
306
307    def __init__(
308        self,
309        **kwargs
310    ):
311        super(AnalysisDefinition, self).__init__(**kwargs)
312        self.description = None
313
314
315class ApiDefinitionInfo(msrest.serialization.Model):
316    """Information about the formal API definition for the app.
317
318    :param url: The URL of the API definition.
319    :type url: str
320    """
321
322    _attribute_map = {
323        'url': {'key': 'url', 'type': 'str'},
324    }
325
326    def __init__(
327        self,
328        **kwargs
329    ):
330        super(ApiDefinitionInfo, self).__init__(**kwargs)
331        self.url = kwargs.get('url', None)
332
333
334class ApiManagementConfig(msrest.serialization.Model):
335    """Azure API management (APIM) configuration linked to the app.
336
337    :param id: APIM-Api Identifier.
338    :type id: str
339    """
340
341    _attribute_map = {
342        'id': {'key': 'id', 'type': 'str'},
343    }
344
345    def __init__(
346        self,
347        **kwargs
348    ):
349        super(ApiManagementConfig, self).__init__(**kwargs)
350        self.id = kwargs.get('id', None)
351
352
353class ApplicationLogsConfig(msrest.serialization.Model):
354    """Application logs configuration.
355
356    :param file_system: Application logs to file system configuration.
357    :type file_system: ~azure.mgmt.web.v2020_09_01.models.FileSystemApplicationLogsConfig
358    :param azure_table_storage: Application logs to azure table storage configuration.
359    :type azure_table_storage:
360     ~azure.mgmt.web.v2020_09_01.models.AzureTableStorageApplicationLogsConfig
361    :param azure_blob_storage: Application logs to blob storage configuration.
362    :type azure_blob_storage:
363     ~azure.mgmt.web.v2020_09_01.models.AzureBlobStorageApplicationLogsConfig
364    """
365
366    _attribute_map = {
367        'file_system': {'key': 'fileSystem', 'type': 'FileSystemApplicationLogsConfig'},
368        'azure_table_storage': {'key': 'azureTableStorage', 'type': 'AzureTableStorageApplicationLogsConfig'},
369        'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageApplicationLogsConfig'},
370    }
371
372    def __init__(
373        self,
374        **kwargs
375    ):
376        super(ApplicationLogsConfig, self).__init__(**kwargs)
377        self.file_system = kwargs.get('file_system', None)
378        self.azure_table_storage = kwargs.get('azure_table_storage', None)
379        self.azure_blob_storage = kwargs.get('azure_blob_storage', None)
380
381
382class ApplicationStack(msrest.serialization.Model):
383    """Application stack.
384
385    :param name: Application stack name.
386    :type name: str
387    :param display: Application stack display name.
388    :type display: str
389    :param dependency: Application stack dependency.
390    :type dependency: str
391    :param major_versions: List of major versions available.
392    :type major_versions: list[~azure.mgmt.web.v2020_09_01.models.StackMajorVersion]
393    :param frameworks: List of frameworks associated with application stack.
394    :type frameworks: list[~azure.mgmt.web.v2020_09_01.models.ApplicationStack]
395    """
396
397    _attribute_map = {
398        'name': {'key': 'name', 'type': 'str'},
399        'display': {'key': 'display', 'type': 'str'},
400        'dependency': {'key': 'dependency', 'type': 'str'},
401        'major_versions': {'key': 'majorVersions', 'type': '[StackMajorVersion]'},
402        'frameworks': {'key': 'frameworks', 'type': '[ApplicationStack]'},
403    }
404
405    def __init__(
406        self,
407        **kwargs
408    ):
409        super(ApplicationStack, self).__init__(**kwargs)
410        self.name = kwargs.get('name', None)
411        self.display = kwargs.get('display', None)
412        self.dependency = kwargs.get('dependency', None)
413        self.major_versions = kwargs.get('major_versions', None)
414        self.frameworks = kwargs.get('frameworks', None)
415
416
417class ApplicationStackCollection(msrest.serialization.Model):
418    """Collection of Application Stacks.
419
420    Variables are only populated by the server, and will be ignored when sending a request.
421
422    All required parameters must be populated in order to send to Azure.
423
424    :param value: Required. Collection of resources.
425    :type value: list[~azure.mgmt.web.v2020_09_01.models.ApplicationStackResource]
426    :ivar next_link: Link to next page of resources.
427    :vartype next_link: str
428    """
429
430    _validation = {
431        'value': {'required': True},
432        'next_link': {'readonly': True},
433    }
434
435    _attribute_map = {
436        'value': {'key': 'value', 'type': '[ApplicationStackResource]'},
437        'next_link': {'key': 'nextLink', 'type': 'str'},
438    }
439
440    def __init__(
441        self,
442        **kwargs
443    ):
444        super(ApplicationStackCollection, self).__init__(**kwargs)
445        self.value = kwargs['value']
446        self.next_link = None
447
448
449class ApplicationStackResource(ProxyOnlyResource):
450    """ARM resource for a ApplicationStack.
451
452    Variables are only populated by the server, and will be ignored when sending a request.
453
454    :ivar id: Resource Id.
455    :vartype id: str
456    :ivar name: Resource Name.
457    :vartype name: str
458    :param kind: Kind of resource.
459    :type kind: str
460    :ivar type: Resource type.
461    :vartype type: str
462    :ivar system_data: The system metadata relating to this resource.
463    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
464    :param name_properties_name: Application stack name.
465    :type name_properties_name: str
466    :param display: Application stack display name.
467    :type display: str
468    :param dependency: Application stack dependency.
469    :type dependency: str
470    :param major_versions: List of major versions available.
471    :type major_versions: list[~azure.mgmt.web.v2020_09_01.models.StackMajorVersion]
472    :param frameworks: List of frameworks associated with application stack.
473    :type frameworks: list[~azure.mgmt.web.v2020_09_01.models.ApplicationStack]
474    """
475
476    _validation = {
477        'id': {'readonly': True},
478        'name': {'readonly': True},
479        'type': {'readonly': True},
480        'system_data': {'readonly': True},
481    }
482
483    _attribute_map = {
484        'id': {'key': 'id', 'type': 'str'},
485        'name': {'key': 'name', 'type': 'str'},
486        'kind': {'key': 'kind', 'type': 'str'},
487        'type': {'key': 'type', 'type': 'str'},
488        'system_data': {'key': 'systemData', 'type': 'SystemData'},
489        'name_properties_name': {'key': 'properties.name', 'type': 'str'},
490        'display': {'key': 'properties.display', 'type': 'str'},
491        'dependency': {'key': 'properties.dependency', 'type': 'str'},
492        'major_versions': {'key': 'properties.majorVersions', 'type': '[StackMajorVersion]'},
493        'frameworks': {'key': 'properties.frameworks', 'type': '[ApplicationStack]'},
494    }
495
496    def __init__(
497        self,
498        **kwargs
499    ):
500        super(ApplicationStackResource, self).__init__(**kwargs)
501        self.name_properties_name = kwargs.get('name_properties_name', None)
502        self.display = kwargs.get('display', None)
503        self.dependency = kwargs.get('dependency', None)
504        self.major_versions = kwargs.get('major_versions', None)
505        self.frameworks = kwargs.get('frameworks', None)
506
507
508class AppRegistration(ProxyOnlyResource):
509    """AppRegistration.
510
511    Variables are only populated by the server, and will be ignored when sending a request.
512
513    :ivar id: Resource Id.
514    :vartype id: str
515    :ivar name: Resource Name.
516    :vartype name: str
517    :param kind: Kind of resource.
518    :type kind: str
519    :ivar type: Resource type.
520    :vartype type: str
521    :ivar system_data: The system metadata relating to this resource.
522    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
523    :param app_id:
524    :type app_id: str
525    :param app_secret_setting_name:
526    :type app_secret_setting_name: str
527    """
528
529    _validation = {
530        'id': {'readonly': True},
531        'name': {'readonly': True},
532        'type': {'readonly': True},
533        'system_data': {'readonly': True},
534    }
535
536    _attribute_map = {
537        'id': {'key': 'id', 'type': 'str'},
538        'name': {'key': 'name', 'type': 'str'},
539        'kind': {'key': 'kind', 'type': 'str'},
540        'type': {'key': 'type', 'type': 'str'},
541        'system_data': {'key': 'systemData', 'type': 'SystemData'},
542        'app_id': {'key': 'properties.appId', 'type': 'str'},
543        'app_secret_setting_name': {'key': 'properties.appSecretSettingName', 'type': 'str'},
544    }
545
546    def __init__(
547        self,
548        **kwargs
549    ):
550        super(AppRegistration, self).__init__(**kwargs)
551        self.app_id = kwargs.get('app_id', None)
552        self.app_secret_setting_name = kwargs.get('app_secret_setting_name', None)
553
554
555class AppServiceCertificate(msrest.serialization.Model):
556    """Key Vault container for a certificate that is purchased through Azure.
557
558    Variables are only populated by the server, and will be ignored when sending a request.
559
560    :param key_vault_id: Key Vault resource Id.
561    :type key_vault_id: str
562    :param key_vault_secret_name: Key Vault secret name.
563    :type key_vault_secret_name: str
564    :ivar provisioning_state: Status of the Key Vault secret. Possible values include:
565     "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed",
566     "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault",
567     "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey",
568     "Unknown".
569    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.KeyVaultSecretStatus
570    """
571
572    _validation = {
573        'provisioning_state': {'readonly': True},
574    }
575
576    _attribute_map = {
577        'key_vault_id': {'key': 'keyVaultId', 'type': 'str'},
578        'key_vault_secret_name': {'key': 'keyVaultSecretName', 'type': 'str'},
579        'provisioning_state': {'key': 'provisioningState', 'type': 'str'},
580    }
581
582    def __init__(
583        self,
584        **kwargs
585    ):
586        super(AppServiceCertificate, self).__init__(**kwargs)
587        self.key_vault_id = kwargs.get('key_vault_id', None)
588        self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None)
589        self.provisioning_state = None
590
591
592class AppServiceCertificateCollection(msrest.serialization.Model):
593    """Collection of certificate order certificates.
594
595    Variables are only populated by the server, and will be ignored when sending a request.
596
597    All required parameters must be populated in order to send to Azure.
598
599    :param value: Required. Collection of resources.
600    :type value: list[~azure.mgmt.web.v2020_09_01.models.AppServiceCertificateResource]
601    :ivar next_link: Link to next page of resources.
602    :vartype next_link: str
603    """
604
605    _validation = {
606        'value': {'required': True},
607        'next_link': {'readonly': True},
608    }
609
610    _attribute_map = {
611        'value': {'key': 'value', 'type': '[AppServiceCertificateResource]'},
612        'next_link': {'key': 'nextLink', 'type': 'str'},
613    }
614
615    def __init__(
616        self,
617        **kwargs
618    ):
619        super(AppServiceCertificateCollection, self).__init__(**kwargs)
620        self.value = kwargs['value']
621        self.next_link = None
622
623
624class Resource(msrest.serialization.Model):
625    """Azure resource. This resource is tracked in Azure Resource Manager.
626
627    Variables are only populated by the server, and will be ignored when sending a request.
628
629    All required parameters must be populated in order to send to Azure.
630
631    :ivar id: Resource Id.
632    :vartype id: str
633    :ivar name: Resource Name.
634    :vartype name: str
635    :param kind: Kind of resource.
636    :type kind: str
637    :param location: Required. Resource Location.
638    :type location: str
639    :ivar type: Resource type.
640    :vartype type: str
641    :param tags: A set of tags. Resource tags.
642    :type tags: dict[str, str]
643    :ivar system_data: The system metadata relating to this resource.
644    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
645    """
646
647    _validation = {
648        'id': {'readonly': True},
649        'name': {'readonly': True},
650        'location': {'required': True},
651        'type': {'readonly': True},
652        'system_data': {'readonly': True},
653    }
654
655    _attribute_map = {
656        'id': {'key': 'id', 'type': 'str'},
657        'name': {'key': 'name', 'type': 'str'},
658        'kind': {'key': 'kind', 'type': 'str'},
659        'location': {'key': 'location', 'type': 'str'},
660        'type': {'key': 'type', 'type': 'str'},
661        'tags': {'key': 'tags', 'type': '{str}'},
662        'system_data': {'key': 'systemData', 'type': 'SystemData'},
663    }
664
665    def __init__(
666        self,
667        **kwargs
668    ):
669        super(Resource, self).__init__(**kwargs)
670        self.id = None
671        self.name = None
672        self.kind = kwargs.get('kind', None)
673        self.location = kwargs['location']
674        self.type = None
675        self.tags = kwargs.get('tags', None)
676        self.system_data = None
677
678
679class AppServiceCertificateOrder(Resource):
680    """SSL certificate purchase order.
681
682    Variables are only populated by the server, and will be ignored when sending a request.
683
684    All required parameters must be populated in order to send to Azure.
685
686    :ivar id: Resource Id.
687    :vartype id: str
688    :ivar name: Resource Name.
689    :vartype name: str
690    :param kind: Kind of resource.
691    :type kind: str
692    :param location: Required. Resource Location.
693    :type location: str
694    :ivar type: Resource type.
695    :vartype type: str
696    :param tags: A set of tags. Resource tags.
697    :type tags: dict[str, str]
698    :ivar system_data: The system metadata relating to this resource.
699    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
700    :param certificates: State of the Key Vault secret.
701    :type certificates: dict[str, ~azure.mgmt.web.v2020_09_01.models.AppServiceCertificate]
702    :param distinguished_name: Certificate distinguished name.
703    :type distinguished_name: str
704    :ivar domain_verification_token: Domain verification token.
705    :vartype domain_verification_token: str
706    :param validity_in_years: Duration in years (must be between 1 and 3).
707    :type validity_in_years: int
708    :param key_size: Certificate key size.
709    :type key_size: int
710    :param product_type: Certificate product type. Possible values include:
711     "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl".
712    :type product_type: str or ~azure.mgmt.web.v2020_09_01.models.CertificateProductType
713    :param auto_renew: :code:`<code>true</code>` if the certificate should be automatically renewed
714     when it expires; otherwise, :code:`<code>false</code>`.
715    :type auto_renew: bool
716    :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded",
717     "Failed", "Canceled", "InProgress", "Deleting".
718    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
719    :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued",
720     "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired",
721     "NotSubmitted".
722    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.CertificateOrderStatus
723    :ivar signed_certificate: Signed certificate.
724    :vartype signed_certificate: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
725    :param csr: Last CSR that was created for this order.
726    :type csr: str
727    :ivar intermediate: Intermediate certificate.
728    :vartype intermediate: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
729    :ivar root: Root certificate.
730    :vartype root: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
731    :ivar serial_number: Current serial number of the certificate.
732    :vartype serial_number: str
733    :ivar last_certificate_issuance_time: Certificate last issuance time.
734    :vartype last_certificate_issuance_time: ~datetime.datetime
735    :ivar expiration_time: Certificate expiration time.
736    :vartype expiration_time: ~datetime.datetime
737    :ivar is_private_key_external: :code:`<code>true</code>` if private key is external; otherwise,
738     :code:`<code>false</code>`.
739    :vartype is_private_key_external: bool
740    :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not
741     renewable at the current moment.
742    :vartype app_service_certificate_not_renewable_reasons: list[str or
743     ~azure.mgmt.web.v2020_09_01.models.AppServiceCertificateOrderPropertiesAppServiceCertificateNotRenewableReasonsItem]
744    :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next.
745    :vartype next_auto_renewal_time_stamp: ~datetime.datetime
746    """
747
748    _validation = {
749        'id': {'readonly': True},
750        'name': {'readonly': True},
751        'location': {'required': True},
752        'type': {'readonly': True},
753        'system_data': {'readonly': True},
754        'domain_verification_token': {'readonly': True},
755        'validity_in_years': {'maximum': 3, 'minimum': 1},
756        'provisioning_state': {'readonly': True},
757        'status': {'readonly': True},
758        'signed_certificate': {'readonly': True},
759        'intermediate': {'readonly': True},
760        'root': {'readonly': True},
761        'serial_number': {'readonly': True},
762        'last_certificate_issuance_time': {'readonly': True},
763        'expiration_time': {'readonly': True},
764        'is_private_key_external': {'readonly': True},
765        'app_service_certificate_not_renewable_reasons': {'readonly': True},
766        'next_auto_renewal_time_stamp': {'readonly': True},
767    }
768
769    _attribute_map = {
770        'id': {'key': 'id', 'type': 'str'},
771        'name': {'key': 'name', 'type': 'str'},
772        'kind': {'key': 'kind', 'type': 'str'},
773        'location': {'key': 'location', 'type': 'str'},
774        'type': {'key': 'type', 'type': 'str'},
775        'tags': {'key': 'tags', 'type': '{str}'},
776        'system_data': {'key': 'systemData', 'type': 'SystemData'},
777        'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'},
778        'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'},
779        'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'},
780        'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'},
781        'key_size': {'key': 'properties.keySize', 'type': 'int'},
782        'product_type': {'key': 'properties.productType', 'type': 'str'},
783        'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'},
784        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
785        'status': {'key': 'properties.status', 'type': 'str'},
786        'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'},
787        'csr': {'key': 'properties.csr', 'type': 'str'},
788        'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'},
789        'root': {'key': 'properties.root', 'type': 'CertificateDetails'},
790        'serial_number': {'key': 'properties.serialNumber', 'type': 'str'},
791        'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'},
792        'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'},
793        'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'},
794        'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'},
795        'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'},
796    }
797
798    def __init__(
799        self,
800        **kwargs
801    ):
802        super(AppServiceCertificateOrder, self).__init__(**kwargs)
803        self.certificates = kwargs.get('certificates', None)
804        self.distinguished_name = kwargs.get('distinguished_name', None)
805        self.domain_verification_token = None
806        self.validity_in_years = kwargs.get('validity_in_years', 1)
807        self.key_size = kwargs.get('key_size', 2048)
808        self.product_type = kwargs.get('product_type', None)
809        self.auto_renew = kwargs.get('auto_renew', True)
810        self.provisioning_state = None
811        self.status = None
812        self.signed_certificate = None
813        self.csr = kwargs.get('csr', None)
814        self.intermediate = None
815        self.root = None
816        self.serial_number = None
817        self.last_certificate_issuance_time = None
818        self.expiration_time = None
819        self.is_private_key_external = None
820        self.app_service_certificate_not_renewable_reasons = None
821        self.next_auto_renewal_time_stamp = None
822
823
824class AppServiceCertificateOrderCollection(msrest.serialization.Model):
825    """Collection of certificate orders.
826
827    Variables are only populated by the server, and will be ignored when sending a request.
828
829    All required parameters must be populated in order to send to Azure.
830
831    :param value: Required. Collection of resources.
832    :type value: list[~azure.mgmt.web.v2020_09_01.models.AppServiceCertificateOrder]
833    :ivar next_link: Link to next page of resources.
834    :vartype next_link: str
835    """
836
837    _validation = {
838        'value': {'required': True},
839        'next_link': {'readonly': True},
840    }
841
842    _attribute_map = {
843        'value': {'key': 'value', 'type': '[AppServiceCertificateOrder]'},
844        'next_link': {'key': 'nextLink', 'type': 'str'},
845    }
846
847    def __init__(
848        self,
849        **kwargs
850    ):
851        super(AppServiceCertificateOrderCollection, self).__init__(**kwargs)
852        self.value = kwargs['value']
853        self.next_link = None
854
855
856class AppServiceCertificateOrderPatchResource(ProxyOnlyResource):
857    """ARM resource for a certificate order that is purchased through Azure.
858
859    Variables are only populated by the server, and will be ignored when sending a request.
860
861    :ivar id: Resource Id.
862    :vartype id: str
863    :ivar name: Resource Name.
864    :vartype name: str
865    :param kind: Kind of resource.
866    :type kind: str
867    :ivar type: Resource type.
868    :vartype type: str
869    :ivar system_data: The system metadata relating to this resource.
870    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
871    :param certificates: State of the Key Vault secret.
872    :type certificates: dict[str, ~azure.mgmt.web.v2020_09_01.models.AppServiceCertificate]
873    :param distinguished_name: Certificate distinguished name.
874    :type distinguished_name: str
875    :ivar domain_verification_token: Domain verification token.
876    :vartype domain_verification_token: str
877    :param validity_in_years: Duration in years (must be between 1 and 3).
878    :type validity_in_years: int
879    :param key_size: Certificate key size.
880    :type key_size: int
881    :param product_type: Certificate product type. Possible values include:
882     "StandardDomainValidatedSsl", "StandardDomainValidatedWildCardSsl".
883    :type product_type: str or ~azure.mgmt.web.v2020_09_01.models.CertificateProductType
884    :param auto_renew: :code:`<code>true</code>` if the certificate should be automatically renewed
885     when it expires; otherwise, :code:`<code>false</code>`.
886    :type auto_renew: bool
887    :ivar provisioning_state: Status of certificate order. Possible values include: "Succeeded",
888     "Failed", "Canceled", "InProgress", "Deleting".
889    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
890    :ivar status: Current order status. Possible values include: "Pendingissuance", "Issued",
891     "Revoked", "Canceled", "Denied", "Pendingrevocation", "PendingRekey", "Unused", "Expired",
892     "NotSubmitted".
893    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.CertificateOrderStatus
894    :ivar signed_certificate: Signed certificate.
895    :vartype signed_certificate: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
896    :param csr: Last CSR that was created for this order.
897    :type csr: str
898    :ivar intermediate: Intermediate certificate.
899    :vartype intermediate: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
900    :ivar root: Root certificate.
901    :vartype root: ~azure.mgmt.web.v2020_09_01.models.CertificateDetails
902    :ivar serial_number: Current serial number of the certificate.
903    :vartype serial_number: str
904    :ivar last_certificate_issuance_time: Certificate last issuance time.
905    :vartype last_certificate_issuance_time: ~datetime.datetime
906    :ivar expiration_time: Certificate expiration time.
907    :vartype expiration_time: ~datetime.datetime
908    :ivar is_private_key_external: :code:`<code>true</code>` if private key is external; otherwise,
909     :code:`<code>false</code>`.
910    :vartype is_private_key_external: bool
911    :ivar app_service_certificate_not_renewable_reasons: Reasons why App Service Certificate is not
912     renewable at the current moment.
913    :vartype app_service_certificate_not_renewable_reasons: list[str or
914     ~azure.mgmt.web.v2020_09_01.models.AppServiceCertificateOrderPatchResourcePropertiesAppServiceCertificateNotRenewableReasonsItem]
915    :ivar next_auto_renewal_time_stamp: Time stamp when the certificate would be auto renewed next.
916    :vartype next_auto_renewal_time_stamp: ~datetime.datetime
917    """
918
919    _validation = {
920        'id': {'readonly': True},
921        'name': {'readonly': True},
922        'type': {'readonly': True},
923        'system_data': {'readonly': True},
924        'domain_verification_token': {'readonly': True},
925        'validity_in_years': {'maximum': 3, 'minimum': 1},
926        'provisioning_state': {'readonly': True},
927        'status': {'readonly': True},
928        'signed_certificate': {'readonly': True},
929        'intermediate': {'readonly': True},
930        'root': {'readonly': True},
931        'serial_number': {'readonly': True},
932        'last_certificate_issuance_time': {'readonly': True},
933        'expiration_time': {'readonly': True},
934        'is_private_key_external': {'readonly': True},
935        'app_service_certificate_not_renewable_reasons': {'readonly': True},
936        'next_auto_renewal_time_stamp': {'readonly': True},
937    }
938
939    _attribute_map = {
940        'id': {'key': 'id', 'type': 'str'},
941        'name': {'key': 'name', 'type': 'str'},
942        'kind': {'key': 'kind', 'type': 'str'},
943        'type': {'key': 'type', 'type': 'str'},
944        'system_data': {'key': 'systemData', 'type': 'SystemData'},
945        'certificates': {'key': 'properties.certificates', 'type': '{AppServiceCertificate}'},
946        'distinguished_name': {'key': 'properties.distinguishedName', 'type': 'str'},
947        'domain_verification_token': {'key': 'properties.domainVerificationToken', 'type': 'str'},
948        'validity_in_years': {'key': 'properties.validityInYears', 'type': 'int'},
949        'key_size': {'key': 'properties.keySize', 'type': 'int'},
950        'product_type': {'key': 'properties.productType', 'type': 'str'},
951        'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'},
952        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
953        'status': {'key': 'properties.status', 'type': 'str'},
954        'signed_certificate': {'key': 'properties.signedCertificate', 'type': 'CertificateDetails'},
955        'csr': {'key': 'properties.csr', 'type': 'str'},
956        'intermediate': {'key': 'properties.intermediate', 'type': 'CertificateDetails'},
957        'root': {'key': 'properties.root', 'type': 'CertificateDetails'},
958        'serial_number': {'key': 'properties.serialNumber', 'type': 'str'},
959        'last_certificate_issuance_time': {'key': 'properties.lastCertificateIssuanceTime', 'type': 'iso-8601'},
960        'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'},
961        'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'},
962        'app_service_certificate_not_renewable_reasons': {'key': 'properties.appServiceCertificateNotRenewableReasons', 'type': '[str]'},
963        'next_auto_renewal_time_stamp': {'key': 'properties.nextAutoRenewalTimeStamp', 'type': 'iso-8601'},
964    }
965
966    def __init__(
967        self,
968        **kwargs
969    ):
970        super(AppServiceCertificateOrderPatchResource, self).__init__(**kwargs)
971        self.certificates = kwargs.get('certificates', None)
972        self.distinguished_name = kwargs.get('distinguished_name', None)
973        self.domain_verification_token = None
974        self.validity_in_years = kwargs.get('validity_in_years', 1)
975        self.key_size = kwargs.get('key_size', 2048)
976        self.product_type = kwargs.get('product_type', None)
977        self.auto_renew = kwargs.get('auto_renew', True)
978        self.provisioning_state = None
979        self.status = None
980        self.signed_certificate = None
981        self.csr = kwargs.get('csr', None)
982        self.intermediate = None
983        self.root = None
984        self.serial_number = None
985        self.last_certificate_issuance_time = None
986        self.expiration_time = None
987        self.is_private_key_external = None
988        self.app_service_certificate_not_renewable_reasons = None
989        self.next_auto_renewal_time_stamp = None
990
991
992class AppServiceCertificatePatchResource(ProxyOnlyResource):
993    """Key Vault container ARM resource for a certificate that is purchased through Azure.
994
995    Variables are only populated by the server, and will be ignored when sending a request.
996
997    :ivar id: Resource Id.
998    :vartype id: str
999    :ivar name: Resource Name.
1000    :vartype name: str
1001    :param kind: Kind of resource.
1002    :type kind: str
1003    :ivar type: Resource type.
1004    :vartype type: str
1005    :ivar system_data: The system metadata relating to this resource.
1006    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
1007    :param key_vault_id: Key Vault resource Id.
1008    :type key_vault_id: str
1009    :param key_vault_secret_name: Key Vault secret name.
1010    :type key_vault_secret_name: str
1011    :ivar provisioning_state: Status of the Key Vault secret. Possible values include:
1012     "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed",
1013     "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault",
1014     "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey",
1015     "Unknown".
1016    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.KeyVaultSecretStatus
1017    """
1018
1019    _validation = {
1020        'id': {'readonly': True},
1021        'name': {'readonly': True},
1022        'type': {'readonly': True},
1023        'system_data': {'readonly': True},
1024        'provisioning_state': {'readonly': True},
1025    }
1026
1027    _attribute_map = {
1028        'id': {'key': 'id', 'type': 'str'},
1029        'name': {'key': 'name', 'type': 'str'},
1030        'kind': {'key': 'kind', 'type': 'str'},
1031        'type': {'key': 'type', 'type': 'str'},
1032        'system_data': {'key': 'systemData', 'type': 'SystemData'},
1033        'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'},
1034        'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'},
1035        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
1036    }
1037
1038    def __init__(
1039        self,
1040        **kwargs
1041    ):
1042        super(AppServiceCertificatePatchResource, self).__init__(**kwargs)
1043        self.key_vault_id = kwargs.get('key_vault_id', None)
1044        self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None)
1045        self.provisioning_state = None
1046
1047
1048class AppServiceCertificateResource(Resource):
1049    """Key Vault container ARM resource for a certificate that is purchased through Azure.
1050
1051    Variables are only populated by the server, and will be ignored when sending a request.
1052
1053    All required parameters must be populated in order to send to Azure.
1054
1055    :ivar id: Resource Id.
1056    :vartype id: str
1057    :ivar name: Resource Name.
1058    :vartype name: str
1059    :param kind: Kind of resource.
1060    :type kind: str
1061    :param location: Required. Resource Location.
1062    :type location: str
1063    :ivar type: Resource type.
1064    :vartype type: str
1065    :param tags: A set of tags. Resource tags.
1066    :type tags: dict[str, str]
1067    :ivar system_data: The system metadata relating to this resource.
1068    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
1069    :param key_vault_id: Key Vault resource Id.
1070    :type key_vault_id: str
1071    :param key_vault_secret_name: Key Vault secret name.
1072    :type key_vault_secret_name: str
1073    :ivar provisioning_state: Status of the Key Vault secret. Possible values include:
1074     "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed",
1075     "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault",
1076     "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey",
1077     "Unknown".
1078    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.KeyVaultSecretStatus
1079    """
1080
1081    _validation = {
1082        'id': {'readonly': True},
1083        'name': {'readonly': True},
1084        'location': {'required': True},
1085        'type': {'readonly': True},
1086        'system_data': {'readonly': True},
1087        'provisioning_state': {'readonly': True},
1088    }
1089
1090    _attribute_map = {
1091        'id': {'key': 'id', 'type': 'str'},
1092        'name': {'key': 'name', 'type': 'str'},
1093        'kind': {'key': 'kind', 'type': 'str'},
1094        'location': {'key': 'location', 'type': 'str'},
1095        'type': {'key': 'type', 'type': 'str'},
1096        'tags': {'key': 'tags', 'type': '{str}'},
1097        'system_data': {'key': 'systemData', 'type': 'SystemData'},
1098        'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'},
1099        'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'},
1100        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
1101    }
1102
1103    def __init__(
1104        self,
1105        **kwargs
1106    ):
1107        super(AppServiceCertificateResource, self).__init__(**kwargs)
1108        self.key_vault_id = kwargs.get('key_vault_id', None)
1109        self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None)
1110        self.provisioning_state = None
1111
1112
1113class AppServiceEnvironment(msrest.serialization.Model):
1114    """Description of an App Service Environment.
1115
1116    Variables are only populated by the server, and will be ignored when sending a request.
1117
1118    All required parameters must be populated in order to send to Azure.
1119
1120    :param name: Required. Name of the App Service Environment.
1121    :type name: str
1122    :param location: Required. Location of the App Service Environment, e.g. "West US".
1123    :type location: str
1124    :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values
1125     include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting".
1126    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
1127    :ivar status: Current status of the App Service Environment. Possible values include:
1128     "Preparing", "Ready", "Scaling", "Deleting".
1129    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentStatus
1130    :param vnet_name: Name of the Virtual Network for the App Service Environment.
1131    :type vnet_name: str
1132    :param vnet_resource_group_name: Resource group of the Virtual Network.
1133    :type vnet_resource_group_name: str
1134    :param vnet_subnet_name: Subnet of the Virtual Network.
1135    :type vnet_subnet_name: str
1136    :param virtual_network: Required. Description of the Virtual Network.
1137    :type virtual_network: ~azure.mgmt.web.v2020_09_01.models.VirtualNetworkProfile
1138    :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the
1139     Virtual Network for the App Service Environment. Possible values include: "None", "Web",
1140     "Publishing", "Web,Publishing".
1141    :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2020_09_01.models.LoadBalancingMode
1142    :param multi_size: Front-end VM size, e.g. "Medium", "Large".
1143    :type multi_size: str
1144    :param multi_role_count: Number of front-end instances.
1145    :type multi_role_count: int
1146    :param worker_pools: Required. Description of worker pools with worker size IDs, VM sizes, and
1147     number of workers in each pool.
1148    :type worker_pools: list[~azure.mgmt.web.v2020_09_01.models.WorkerPool]
1149    :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service
1150     Environment.
1151    :type ipssl_address_count: int
1152    :ivar database_edition: Edition of the metadata database for the App Service Environment, e.g.
1153     "Standard".
1154    :vartype database_edition: str
1155    :ivar database_service_objective: Service objective of the metadata database for the App
1156     Service Environment, e.g. "S0".
1157    :vartype database_service_objective: str
1158    :ivar upgrade_domains: Number of upgrade domains of the App Service Environment.
1159    :vartype upgrade_domains: int
1160    :ivar subscription_id: Subscription of the App Service Environment.
1161    :vartype subscription_id: str
1162    :param dns_suffix: DNS suffix of the App Service Environment.
1163    :type dns_suffix: str
1164    :ivar last_action: Last deployment action on the App Service Environment.
1165    :vartype last_action: str
1166    :ivar last_action_result: Result of the last deployment action on the App Service Environment.
1167    :vartype last_action_result: str
1168    :ivar allowed_multi_sizes: List of comma separated strings describing which VM sizes are
1169     allowed for front-ends.
1170    :vartype allowed_multi_sizes: str
1171    :ivar allowed_worker_sizes: List of comma separated strings describing which VM sizes are
1172     allowed for workers.
1173    :vartype allowed_worker_sizes: str
1174    :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment.
1175    :vartype maximum_number_of_machines: int
1176    :ivar vip_mappings: Description of IP SSL mapping for the App Service Environment.
1177    :vartype vip_mappings: list[~azure.mgmt.web.v2020_09_01.models.VirtualIPMapping]
1178    :ivar environment_capacities: Current total, used, and available worker capacities.
1179    :vartype environment_capacities: list[~azure.mgmt.web.v2020_09_01.models.StampCapacity]
1180    :param network_access_control_list: Access control list for controlling traffic to the App
1181     Service Environment.
1182    :type network_access_control_list:
1183     list[~azure.mgmt.web.v2020_09_01.models.NetworkAccessControlEntry]
1184    :ivar environment_is_healthy: True/false indicating whether the App Service Environment is
1185     healthy.
1186    :vartype environment_is_healthy: bool
1187    :ivar environment_status: Detailed message about with results of the last check of the App
1188     Service Environment.
1189    :vartype environment_status: str
1190    :ivar resource_group: Resource group of the App Service Environment.
1191    :vartype resource_group: str
1192    :param front_end_scale_factor: Scale factor for front-ends.
1193    :type front_end_scale_factor: int
1194    :ivar default_front_end_scale_factor: Default Scale Factor for FrontEnds.
1195    :vartype default_front_end_scale_factor: int
1196    :param api_management_account_id: API Management Account associated with the App Service
1197     Environment.
1198    :type api_management_account_id: str
1199    :param suspended: :code:`<code>true</code>` if the App Service Environment is suspended;
1200     otherwise, :code:`<code>false</code>`. The environment can be suspended, e.g. when the
1201     management endpoint is no longer available
1202      (most likely because NSG blocked the incoming traffic).
1203    :type suspended: bool
1204    :param dynamic_cache_enabled: True/false indicating whether the App Service Environment is
1205     suspended. The environment can be suspended e.g. when the management endpoint is no longer
1206     available
1207     (most likely because NSG blocked the incoming traffic).
1208    :type dynamic_cache_enabled: bool
1209    :param cluster_settings: Custom settings for changing the behavior of the App Service
1210     Environment.
1211    :type cluster_settings: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
1212    :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db.
1213    :type user_whitelisted_ip_ranges: list[str]
1214    :param has_linux_workers: Flag that displays whether an ASE has linux workers or not.
1215    :type has_linux_workers: bool
1216    :param ssl_cert_key_vault_id: Key Vault ID for ILB App Service Environment default SSL
1217     certificate.
1218    :type ssl_cert_key_vault_id: str
1219    :param ssl_cert_key_vault_secret_name: Key Vault Secret Name for ILB App Service Environment
1220     default SSL certificate.
1221    :type ssl_cert_key_vault_secret_name: str
1222    """
1223
1224    _validation = {
1225        'name': {'required': True},
1226        'location': {'required': True},
1227        'provisioning_state': {'readonly': True},
1228        'status': {'readonly': True},
1229        'virtual_network': {'required': True},
1230        'worker_pools': {'required': True},
1231        'database_edition': {'readonly': True},
1232        'database_service_objective': {'readonly': True},
1233        'upgrade_domains': {'readonly': True},
1234        'subscription_id': {'readonly': True},
1235        'last_action': {'readonly': True},
1236        'last_action_result': {'readonly': True},
1237        'allowed_multi_sizes': {'readonly': True},
1238        'allowed_worker_sizes': {'readonly': True},
1239        'maximum_number_of_machines': {'readonly': True},
1240        'vip_mappings': {'readonly': True},
1241        'environment_capacities': {'readonly': True},
1242        'environment_is_healthy': {'readonly': True},
1243        'environment_status': {'readonly': True},
1244        'resource_group': {'readonly': True},
1245        'default_front_end_scale_factor': {'readonly': True},
1246    }
1247
1248    _attribute_map = {
1249        'name': {'key': 'name', 'type': 'str'},
1250        'location': {'key': 'location', 'type': 'str'},
1251        'provisioning_state': {'key': 'provisioningState', 'type': 'str'},
1252        'status': {'key': 'status', 'type': 'str'},
1253        'vnet_name': {'key': 'vnetName', 'type': 'str'},
1254        'vnet_resource_group_name': {'key': 'vnetResourceGroupName', 'type': 'str'},
1255        'vnet_subnet_name': {'key': 'vnetSubnetName', 'type': 'str'},
1256        'virtual_network': {'key': 'virtualNetwork', 'type': 'VirtualNetworkProfile'},
1257        'internal_load_balancing_mode': {'key': 'internalLoadBalancingMode', 'type': 'str'},
1258        'multi_size': {'key': 'multiSize', 'type': 'str'},
1259        'multi_role_count': {'key': 'multiRoleCount', 'type': 'int'},
1260        'worker_pools': {'key': 'workerPools', 'type': '[WorkerPool]'},
1261        'ipssl_address_count': {'key': 'ipsslAddressCount', 'type': 'int'},
1262        'database_edition': {'key': 'databaseEdition', 'type': 'str'},
1263        'database_service_objective': {'key': 'databaseServiceObjective', 'type': 'str'},
1264        'upgrade_domains': {'key': 'upgradeDomains', 'type': 'int'},
1265        'subscription_id': {'key': 'subscriptionId', 'type': 'str'},
1266        'dns_suffix': {'key': 'dnsSuffix', 'type': 'str'},
1267        'last_action': {'key': 'lastAction', 'type': 'str'},
1268        'last_action_result': {'key': 'lastActionResult', 'type': 'str'},
1269        'allowed_multi_sizes': {'key': 'allowedMultiSizes', 'type': 'str'},
1270        'allowed_worker_sizes': {'key': 'allowedWorkerSizes', 'type': 'str'},
1271        'maximum_number_of_machines': {'key': 'maximumNumberOfMachines', 'type': 'int'},
1272        'vip_mappings': {'key': 'vipMappings', 'type': '[VirtualIPMapping]'},
1273        'environment_capacities': {'key': 'environmentCapacities', 'type': '[StampCapacity]'},
1274        'network_access_control_list': {'key': 'networkAccessControlList', 'type': '[NetworkAccessControlEntry]'},
1275        'environment_is_healthy': {'key': 'environmentIsHealthy', 'type': 'bool'},
1276        'environment_status': {'key': 'environmentStatus', 'type': 'str'},
1277        'resource_group': {'key': 'resourceGroup', 'type': 'str'},
1278        'front_end_scale_factor': {'key': 'frontEndScaleFactor', 'type': 'int'},
1279        'default_front_end_scale_factor': {'key': 'defaultFrontEndScaleFactor', 'type': 'int'},
1280        'api_management_account_id': {'key': 'apiManagementAccountId', 'type': 'str'},
1281        'suspended': {'key': 'suspended', 'type': 'bool'},
1282        'dynamic_cache_enabled': {'key': 'dynamicCacheEnabled', 'type': 'bool'},
1283        'cluster_settings': {'key': 'clusterSettings', 'type': '[NameValuePair]'},
1284        'user_whitelisted_ip_ranges': {'key': 'userWhitelistedIpRanges', 'type': '[str]'},
1285        'has_linux_workers': {'key': 'hasLinuxWorkers', 'type': 'bool'},
1286        'ssl_cert_key_vault_id': {'key': 'sslCertKeyVaultId', 'type': 'str'},
1287        'ssl_cert_key_vault_secret_name': {'key': 'sslCertKeyVaultSecretName', 'type': 'str'},
1288    }
1289
1290    def __init__(
1291        self,
1292        **kwargs
1293    ):
1294        super(AppServiceEnvironment, self).__init__(**kwargs)
1295        self.name = kwargs['name']
1296        self.location = kwargs['location']
1297        self.provisioning_state = None
1298        self.status = None
1299        self.vnet_name = kwargs.get('vnet_name', None)
1300        self.vnet_resource_group_name = kwargs.get('vnet_resource_group_name', None)
1301        self.vnet_subnet_name = kwargs.get('vnet_subnet_name', None)
1302        self.virtual_network = kwargs['virtual_network']
1303        self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None)
1304        self.multi_size = kwargs.get('multi_size', None)
1305        self.multi_role_count = kwargs.get('multi_role_count', None)
1306        self.worker_pools = kwargs['worker_pools']
1307        self.ipssl_address_count = kwargs.get('ipssl_address_count', None)
1308        self.database_edition = None
1309        self.database_service_objective = None
1310        self.upgrade_domains = None
1311        self.subscription_id = None
1312        self.dns_suffix = kwargs.get('dns_suffix', None)
1313        self.last_action = None
1314        self.last_action_result = None
1315        self.allowed_multi_sizes = None
1316        self.allowed_worker_sizes = None
1317        self.maximum_number_of_machines = None
1318        self.vip_mappings = None
1319        self.environment_capacities = None
1320        self.network_access_control_list = kwargs.get('network_access_control_list', None)
1321        self.environment_is_healthy = None
1322        self.environment_status = None
1323        self.resource_group = None
1324        self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None)
1325        self.default_front_end_scale_factor = None
1326        self.api_management_account_id = kwargs.get('api_management_account_id', None)
1327        self.suspended = kwargs.get('suspended', None)
1328        self.dynamic_cache_enabled = kwargs.get('dynamic_cache_enabled', None)
1329        self.cluster_settings = kwargs.get('cluster_settings', None)
1330        self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None)
1331        self.has_linux_workers = kwargs.get('has_linux_workers', None)
1332        self.ssl_cert_key_vault_id = kwargs.get('ssl_cert_key_vault_id', None)
1333        self.ssl_cert_key_vault_secret_name = kwargs.get('ssl_cert_key_vault_secret_name', None)
1334
1335
1336class AppServiceEnvironmentCollection(msrest.serialization.Model):
1337    """Collection of App Service Environments.
1338
1339    Variables are only populated by the server, and will be ignored when sending a request.
1340
1341    All required parameters must be populated in order to send to Azure.
1342
1343    :param value: Required. Collection of resources.
1344    :type value: list[~azure.mgmt.web.v2020_09_01.models.AppServiceEnvironmentResource]
1345    :ivar next_link: Link to next page of resources.
1346    :vartype next_link: str
1347    """
1348
1349    _validation = {
1350        'value': {'required': True},
1351        'next_link': {'readonly': True},
1352    }
1353
1354    _attribute_map = {
1355        'value': {'key': 'value', 'type': '[AppServiceEnvironmentResource]'},
1356        'next_link': {'key': 'nextLink', 'type': 'str'},
1357    }
1358
1359    def __init__(
1360        self,
1361        **kwargs
1362    ):
1363        super(AppServiceEnvironmentCollection, self).__init__(**kwargs)
1364        self.value = kwargs['value']
1365        self.next_link = None
1366
1367
1368class AppServiceEnvironmentPatchResource(ProxyOnlyResource):
1369    """ARM resource for a app service environment.
1370
1371    Variables are only populated by the server, and will be ignored when sending a request.
1372
1373    :ivar id: Resource Id.
1374    :vartype id: str
1375    :ivar name: Resource Name.
1376    :vartype name: str
1377    :param kind: Kind of resource.
1378    :type kind: str
1379    :ivar type: Resource type.
1380    :vartype type: str
1381    :ivar system_data: The system metadata relating to this resource.
1382    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
1383    :param name_properties_name: Name of the App Service Environment.
1384    :type name_properties_name: str
1385    :param location: Location of the App Service Environment, e.g. "West US".
1386    :type location: str
1387    :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values
1388     include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting".
1389    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
1390    :ivar status: Current status of the App Service Environment. Possible values include:
1391     "Preparing", "Ready", "Scaling", "Deleting".
1392    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentStatus
1393    :param vnet_name: Name of the Virtual Network for the App Service Environment.
1394    :type vnet_name: str
1395    :param vnet_resource_group_name: Resource group of the Virtual Network.
1396    :type vnet_resource_group_name: str
1397    :param vnet_subnet_name: Subnet of the Virtual Network.
1398    :type vnet_subnet_name: str
1399    :param virtual_network: Description of the Virtual Network.
1400    :type virtual_network: ~azure.mgmt.web.v2020_09_01.models.VirtualNetworkProfile
1401    :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the
1402     Virtual Network for the App Service Environment. Possible values include: "None", "Web",
1403     "Publishing", "Web,Publishing".
1404    :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2020_09_01.models.LoadBalancingMode
1405    :param multi_size: Front-end VM size, e.g. "Medium", "Large".
1406    :type multi_size: str
1407    :param multi_role_count: Number of front-end instances.
1408    :type multi_role_count: int
1409    :param worker_pools: Description of worker pools with worker size IDs, VM sizes, and number of
1410     workers in each pool.
1411    :type worker_pools: list[~azure.mgmt.web.v2020_09_01.models.WorkerPool]
1412    :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service
1413     Environment.
1414    :type ipssl_address_count: int
1415    :ivar database_edition: Edition of the metadata database for the App Service Environment, e.g.
1416     "Standard".
1417    :vartype database_edition: str
1418    :ivar database_service_objective: Service objective of the metadata database for the App
1419     Service Environment, e.g. "S0".
1420    :vartype database_service_objective: str
1421    :ivar upgrade_domains: Number of upgrade domains of the App Service Environment.
1422    :vartype upgrade_domains: int
1423    :ivar subscription_id: Subscription of the App Service Environment.
1424    :vartype subscription_id: str
1425    :param dns_suffix: DNS suffix of the App Service Environment.
1426    :type dns_suffix: str
1427    :ivar last_action: Last deployment action on the App Service Environment.
1428    :vartype last_action: str
1429    :ivar last_action_result: Result of the last deployment action on the App Service Environment.
1430    :vartype last_action_result: str
1431    :ivar allowed_multi_sizes: List of comma separated strings describing which VM sizes are
1432     allowed for front-ends.
1433    :vartype allowed_multi_sizes: str
1434    :ivar allowed_worker_sizes: List of comma separated strings describing which VM sizes are
1435     allowed for workers.
1436    :vartype allowed_worker_sizes: str
1437    :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment.
1438    :vartype maximum_number_of_machines: int
1439    :ivar vip_mappings: Description of IP SSL mapping for the App Service Environment.
1440    :vartype vip_mappings: list[~azure.mgmt.web.v2020_09_01.models.VirtualIPMapping]
1441    :ivar environment_capacities: Current total, used, and available worker capacities.
1442    :vartype environment_capacities: list[~azure.mgmt.web.v2020_09_01.models.StampCapacity]
1443    :param network_access_control_list: Access control list for controlling traffic to the App
1444     Service Environment.
1445    :type network_access_control_list:
1446     list[~azure.mgmt.web.v2020_09_01.models.NetworkAccessControlEntry]
1447    :ivar environment_is_healthy: True/false indicating whether the App Service Environment is
1448     healthy.
1449    :vartype environment_is_healthy: bool
1450    :ivar environment_status: Detailed message about with results of the last check of the App
1451     Service Environment.
1452    :vartype environment_status: str
1453    :ivar resource_group: Resource group of the App Service Environment.
1454    :vartype resource_group: str
1455    :param front_end_scale_factor: Scale factor for front-ends.
1456    :type front_end_scale_factor: int
1457    :ivar default_front_end_scale_factor: Default Scale Factor for FrontEnds.
1458    :vartype default_front_end_scale_factor: int
1459    :param api_management_account_id: API Management Account associated with the App Service
1460     Environment.
1461    :type api_management_account_id: str
1462    :param suspended: :code:`<code>true</code>` if the App Service Environment is suspended;
1463     otherwise, :code:`<code>false</code>`. The environment can be suspended, e.g. when the
1464     management endpoint is no longer available
1465      (most likely because NSG blocked the incoming traffic).
1466    :type suspended: bool
1467    :param dynamic_cache_enabled: True/false indicating whether the App Service Environment is
1468     suspended. The environment can be suspended e.g. when the management endpoint is no longer
1469     available
1470     (most likely because NSG blocked the incoming traffic).
1471    :type dynamic_cache_enabled: bool
1472    :param cluster_settings: Custom settings for changing the behavior of the App Service
1473     Environment.
1474    :type cluster_settings: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
1475    :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db.
1476    :type user_whitelisted_ip_ranges: list[str]
1477    :param has_linux_workers: Flag that displays whether an ASE has linux workers or not.
1478    :type has_linux_workers: bool
1479    :param ssl_cert_key_vault_id: Key Vault ID for ILB App Service Environment default SSL
1480     certificate.
1481    :type ssl_cert_key_vault_id: str
1482    :param ssl_cert_key_vault_secret_name: Key Vault Secret Name for ILB App Service Environment
1483     default SSL certificate.
1484    :type ssl_cert_key_vault_secret_name: str
1485    """
1486
1487    _validation = {
1488        'id': {'readonly': True},
1489        'name': {'readonly': True},
1490        'type': {'readonly': True},
1491        'system_data': {'readonly': True},
1492        'provisioning_state': {'readonly': True},
1493        'status': {'readonly': True},
1494        'database_edition': {'readonly': True},
1495        'database_service_objective': {'readonly': True},
1496        'upgrade_domains': {'readonly': True},
1497        'subscription_id': {'readonly': True},
1498        'last_action': {'readonly': True},
1499        'last_action_result': {'readonly': True},
1500        'allowed_multi_sizes': {'readonly': True},
1501        'allowed_worker_sizes': {'readonly': True},
1502        'maximum_number_of_machines': {'readonly': True},
1503        'vip_mappings': {'readonly': True},
1504        'environment_capacities': {'readonly': True},
1505        'environment_is_healthy': {'readonly': True},
1506        'environment_status': {'readonly': True},
1507        'resource_group': {'readonly': True},
1508        'default_front_end_scale_factor': {'readonly': True},
1509    }
1510
1511    _attribute_map = {
1512        'id': {'key': 'id', 'type': 'str'},
1513        'name': {'key': 'name', 'type': 'str'},
1514        'kind': {'key': 'kind', 'type': 'str'},
1515        'type': {'key': 'type', 'type': 'str'},
1516        'system_data': {'key': 'systemData', 'type': 'SystemData'},
1517        'name_properties_name': {'key': 'properties.name', 'type': 'str'},
1518        'location': {'key': 'properties.location', 'type': 'str'},
1519        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
1520        'status': {'key': 'properties.status', 'type': 'str'},
1521        'vnet_name': {'key': 'properties.vnetName', 'type': 'str'},
1522        'vnet_resource_group_name': {'key': 'properties.vnetResourceGroupName', 'type': 'str'},
1523        'vnet_subnet_name': {'key': 'properties.vnetSubnetName', 'type': 'str'},
1524        'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'},
1525        'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'},
1526        'multi_size': {'key': 'properties.multiSize', 'type': 'str'},
1527        'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'},
1528        'worker_pools': {'key': 'properties.workerPools', 'type': '[WorkerPool]'},
1529        'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'},
1530        'database_edition': {'key': 'properties.databaseEdition', 'type': 'str'},
1531        'database_service_objective': {'key': 'properties.databaseServiceObjective', 'type': 'str'},
1532        'upgrade_domains': {'key': 'properties.upgradeDomains', 'type': 'int'},
1533        'subscription_id': {'key': 'properties.subscriptionId', 'type': 'str'},
1534        'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'},
1535        'last_action': {'key': 'properties.lastAction', 'type': 'str'},
1536        'last_action_result': {'key': 'properties.lastActionResult', 'type': 'str'},
1537        'allowed_multi_sizes': {'key': 'properties.allowedMultiSizes', 'type': 'str'},
1538        'allowed_worker_sizes': {'key': 'properties.allowedWorkerSizes', 'type': 'str'},
1539        'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'},
1540        'vip_mappings': {'key': 'properties.vipMappings', 'type': '[VirtualIPMapping]'},
1541        'environment_capacities': {'key': 'properties.environmentCapacities', 'type': '[StampCapacity]'},
1542        'network_access_control_list': {'key': 'properties.networkAccessControlList', 'type': '[NetworkAccessControlEntry]'},
1543        'environment_is_healthy': {'key': 'properties.environmentIsHealthy', 'type': 'bool'},
1544        'environment_status': {'key': 'properties.environmentStatus', 'type': 'str'},
1545        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
1546        'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'},
1547        'default_front_end_scale_factor': {'key': 'properties.defaultFrontEndScaleFactor', 'type': 'int'},
1548        'api_management_account_id': {'key': 'properties.apiManagementAccountId', 'type': 'str'},
1549        'suspended': {'key': 'properties.suspended', 'type': 'bool'},
1550        'dynamic_cache_enabled': {'key': 'properties.dynamicCacheEnabled', 'type': 'bool'},
1551        'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'},
1552        'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'},
1553        'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'},
1554        'ssl_cert_key_vault_id': {'key': 'properties.sslCertKeyVaultId', 'type': 'str'},
1555        'ssl_cert_key_vault_secret_name': {'key': 'properties.sslCertKeyVaultSecretName', 'type': 'str'},
1556    }
1557
1558    def __init__(
1559        self,
1560        **kwargs
1561    ):
1562        super(AppServiceEnvironmentPatchResource, self).__init__(**kwargs)
1563        self.name_properties_name = kwargs.get('name_properties_name', None)
1564        self.location = kwargs.get('location', None)
1565        self.provisioning_state = None
1566        self.status = None
1567        self.vnet_name = kwargs.get('vnet_name', None)
1568        self.vnet_resource_group_name = kwargs.get('vnet_resource_group_name', None)
1569        self.vnet_subnet_name = kwargs.get('vnet_subnet_name', None)
1570        self.virtual_network = kwargs.get('virtual_network', None)
1571        self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None)
1572        self.multi_size = kwargs.get('multi_size', None)
1573        self.multi_role_count = kwargs.get('multi_role_count', None)
1574        self.worker_pools = kwargs.get('worker_pools', None)
1575        self.ipssl_address_count = kwargs.get('ipssl_address_count', None)
1576        self.database_edition = None
1577        self.database_service_objective = None
1578        self.upgrade_domains = None
1579        self.subscription_id = None
1580        self.dns_suffix = kwargs.get('dns_suffix', None)
1581        self.last_action = None
1582        self.last_action_result = None
1583        self.allowed_multi_sizes = None
1584        self.allowed_worker_sizes = None
1585        self.maximum_number_of_machines = None
1586        self.vip_mappings = None
1587        self.environment_capacities = None
1588        self.network_access_control_list = kwargs.get('network_access_control_list', None)
1589        self.environment_is_healthy = None
1590        self.environment_status = None
1591        self.resource_group = None
1592        self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None)
1593        self.default_front_end_scale_factor = None
1594        self.api_management_account_id = kwargs.get('api_management_account_id', None)
1595        self.suspended = kwargs.get('suspended', None)
1596        self.dynamic_cache_enabled = kwargs.get('dynamic_cache_enabled', None)
1597        self.cluster_settings = kwargs.get('cluster_settings', None)
1598        self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None)
1599        self.has_linux_workers = kwargs.get('has_linux_workers', None)
1600        self.ssl_cert_key_vault_id = kwargs.get('ssl_cert_key_vault_id', None)
1601        self.ssl_cert_key_vault_secret_name = kwargs.get('ssl_cert_key_vault_secret_name', None)
1602
1603
1604class AppServiceEnvironmentResource(Resource):
1605    """App Service Environment ARM resource.
1606
1607    Variables are only populated by the server, and will be ignored when sending a request.
1608
1609    All required parameters must be populated in order to send to Azure.
1610
1611    :ivar id: Resource Id.
1612    :vartype id: str
1613    :ivar name: Resource Name.
1614    :vartype name: str
1615    :param kind: Kind of resource.
1616    :type kind: str
1617    :param location: Required. Resource Location.
1618    :type location: str
1619    :ivar type: Resource type.
1620    :vartype type: str
1621    :param tags: A set of tags. Resource tags.
1622    :type tags: dict[str, str]
1623    :ivar system_data: The system metadata relating to this resource.
1624    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
1625    :param name_properties_name: Name of the App Service Environment.
1626    :type name_properties_name: str
1627    :param location_properties_location: Location of the App Service Environment, e.g. "West US".
1628    :type location_properties_location: str
1629    :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values
1630     include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting".
1631    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
1632    :ivar status: Current status of the App Service Environment. Possible values include:
1633     "Preparing", "Ready", "Scaling", "Deleting".
1634    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentStatus
1635    :param vnet_name: Name of the Virtual Network for the App Service Environment.
1636    :type vnet_name: str
1637    :param vnet_resource_group_name: Resource group of the Virtual Network.
1638    :type vnet_resource_group_name: str
1639    :param vnet_subnet_name: Subnet of the Virtual Network.
1640    :type vnet_subnet_name: str
1641    :param virtual_network: Description of the Virtual Network.
1642    :type virtual_network: ~azure.mgmt.web.v2020_09_01.models.VirtualNetworkProfile
1643    :param internal_load_balancing_mode: Specifies which endpoints to serve internally in the
1644     Virtual Network for the App Service Environment. Possible values include: "None", "Web",
1645     "Publishing", "Web,Publishing".
1646    :type internal_load_balancing_mode: str or ~azure.mgmt.web.v2020_09_01.models.LoadBalancingMode
1647    :param multi_size: Front-end VM size, e.g. "Medium", "Large".
1648    :type multi_size: str
1649    :param multi_role_count: Number of front-end instances.
1650    :type multi_role_count: int
1651    :param worker_pools: Description of worker pools with worker size IDs, VM sizes, and number of
1652     workers in each pool.
1653    :type worker_pools: list[~azure.mgmt.web.v2020_09_01.models.WorkerPool]
1654    :param ipssl_address_count: Number of IP SSL addresses reserved for the App Service
1655     Environment.
1656    :type ipssl_address_count: int
1657    :ivar database_edition: Edition of the metadata database for the App Service Environment, e.g.
1658     "Standard".
1659    :vartype database_edition: str
1660    :ivar database_service_objective: Service objective of the metadata database for the App
1661     Service Environment, e.g. "S0".
1662    :vartype database_service_objective: str
1663    :ivar upgrade_domains: Number of upgrade domains of the App Service Environment.
1664    :vartype upgrade_domains: int
1665    :ivar subscription_id: Subscription of the App Service Environment.
1666    :vartype subscription_id: str
1667    :param dns_suffix: DNS suffix of the App Service Environment.
1668    :type dns_suffix: str
1669    :ivar last_action: Last deployment action on the App Service Environment.
1670    :vartype last_action: str
1671    :ivar last_action_result: Result of the last deployment action on the App Service Environment.
1672    :vartype last_action_result: str
1673    :ivar allowed_multi_sizes: List of comma separated strings describing which VM sizes are
1674     allowed for front-ends.
1675    :vartype allowed_multi_sizes: str
1676    :ivar allowed_worker_sizes: List of comma separated strings describing which VM sizes are
1677     allowed for workers.
1678    :vartype allowed_worker_sizes: str
1679    :ivar maximum_number_of_machines: Maximum number of VMs in the App Service Environment.
1680    :vartype maximum_number_of_machines: int
1681    :ivar vip_mappings: Description of IP SSL mapping for the App Service Environment.
1682    :vartype vip_mappings: list[~azure.mgmt.web.v2020_09_01.models.VirtualIPMapping]
1683    :ivar environment_capacities: Current total, used, and available worker capacities.
1684    :vartype environment_capacities: list[~azure.mgmt.web.v2020_09_01.models.StampCapacity]
1685    :param network_access_control_list: Access control list for controlling traffic to the App
1686     Service Environment.
1687    :type network_access_control_list:
1688     list[~azure.mgmt.web.v2020_09_01.models.NetworkAccessControlEntry]
1689    :ivar environment_is_healthy: True/false indicating whether the App Service Environment is
1690     healthy.
1691    :vartype environment_is_healthy: bool
1692    :ivar environment_status: Detailed message about with results of the last check of the App
1693     Service Environment.
1694    :vartype environment_status: str
1695    :ivar resource_group: Resource group of the App Service Environment.
1696    :vartype resource_group: str
1697    :param front_end_scale_factor: Scale factor for front-ends.
1698    :type front_end_scale_factor: int
1699    :ivar default_front_end_scale_factor: Default Scale Factor for FrontEnds.
1700    :vartype default_front_end_scale_factor: int
1701    :param api_management_account_id: API Management Account associated with the App Service
1702     Environment.
1703    :type api_management_account_id: str
1704    :param suspended: :code:`<code>true</code>` if the App Service Environment is suspended;
1705     otherwise, :code:`<code>false</code>`. The environment can be suspended, e.g. when the
1706     management endpoint is no longer available
1707      (most likely because NSG blocked the incoming traffic).
1708    :type suspended: bool
1709    :param dynamic_cache_enabled: True/false indicating whether the App Service Environment is
1710     suspended. The environment can be suspended e.g. when the management endpoint is no longer
1711     available
1712     (most likely because NSG blocked the incoming traffic).
1713    :type dynamic_cache_enabled: bool
1714    :param cluster_settings: Custom settings for changing the behavior of the App Service
1715     Environment.
1716    :type cluster_settings: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
1717    :param user_whitelisted_ip_ranges: User added ip ranges to whitelist on ASE db.
1718    :type user_whitelisted_ip_ranges: list[str]
1719    :param has_linux_workers: Flag that displays whether an ASE has linux workers or not.
1720    :type has_linux_workers: bool
1721    :param ssl_cert_key_vault_id: Key Vault ID for ILB App Service Environment default SSL
1722     certificate.
1723    :type ssl_cert_key_vault_id: str
1724    :param ssl_cert_key_vault_secret_name: Key Vault Secret Name for ILB App Service Environment
1725     default SSL certificate.
1726    :type ssl_cert_key_vault_secret_name: str
1727    """
1728
1729    _validation = {
1730        'id': {'readonly': True},
1731        'name': {'readonly': True},
1732        'location': {'required': True},
1733        'type': {'readonly': True},
1734        'system_data': {'readonly': True},
1735        'provisioning_state': {'readonly': True},
1736        'status': {'readonly': True},
1737        'database_edition': {'readonly': True},
1738        'database_service_objective': {'readonly': True},
1739        'upgrade_domains': {'readonly': True},
1740        'subscription_id': {'readonly': True},
1741        'last_action': {'readonly': True},
1742        'last_action_result': {'readonly': True},
1743        'allowed_multi_sizes': {'readonly': True},
1744        'allowed_worker_sizes': {'readonly': True},
1745        'maximum_number_of_machines': {'readonly': True},
1746        'vip_mappings': {'readonly': True},
1747        'environment_capacities': {'readonly': True},
1748        'environment_is_healthy': {'readonly': True},
1749        'environment_status': {'readonly': True},
1750        'resource_group': {'readonly': True},
1751        'default_front_end_scale_factor': {'readonly': True},
1752    }
1753
1754    _attribute_map = {
1755        'id': {'key': 'id', 'type': 'str'},
1756        'name': {'key': 'name', 'type': 'str'},
1757        'kind': {'key': 'kind', 'type': 'str'},
1758        'location': {'key': 'location', 'type': 'str'},
1759        'type': {'key': 'type', 'type': 'str'},
1760        'tags': {'key': 'tags', 'type': '{str}'},
1761        'system_data': {'key': 'systemData', 'type': 'SystemData'},
1762        'name_properties_name': {'key': 'properties.name', 'type': 'str'},
1763        'location_properties_location': {'key': 'properties.location', 'type': 'str'},
1764        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
1765        'status': {'key': 'properties.status', 'type': 'str'},
1766        'vnet_name': {'key': 'properties.vnetName', 'type': 'str'},
1767        'vnet_resource_group_name': {'key': 'properties.vnetResourceGroupName', 'type': 'str'},
1768        'vnet_subnet_name': {'key': 'properties.vnetSubnetName', 'type': 'str'},
1769        'virtual_network': {'key': 'properties.virtualNetwork', 'type': 'VirtualNetworkProfile'},
1770        'internal_load_balancing_mode': {'key': 'properties.internalLoadBalancingMode', 'type': 'str'},
1771        'multi_size': {'key': 'properties.multiSize', 'type': 'str'},
1772        'multi_role_count': {'key': 'properties.multiRoleCount', 'type': 'int'},
1773        'worker_pools': {'key': 'properties.workerPools', 'type': '[WorkerPool]'},
1774        'ipssl_address_count': {'key': 'properties.ipsslAddressCount', 'type': 'int'},
1775        'database_edition': {'key': 'properties.databaseEdition', 'type': 'str'},
1776        'database_service_objective': {'key': 'properties.databaseServiceObjective', 'type': 'str'},
1777        'upgrade_domains': {'key': 'properties.upgradeDomains', 'type': 'int'},
1778        'subscription_id': {'key': 'properties.subscriptionId', 'type': 'str'},
1779        'dns_suffix': {'key': 'properties.dnsSuffix', 'type': 'str'},
1780        'last_action': {'key': 'properties.lastAction', 'type': 'str'},
1781        'last_action_result': {'key': 'properties.lastActionResult', 'type': 'str'},
1782        'allowed_multi_sizes': {'key': 'properties.allowedMultiSizes', 'type': 'str'},
1783        'allowed_worker_sizes': {'key': 'properties.allowedWorkerSizes', 'type': 'str'},
1784        'maximum_number_of_machines': {'key': 'properties.maximumNumberOfMachines', 'type': 'int'},
1785        'vip_mappings': {'key': 'properties.vipMappings', 'type': '[VirtualIPMapping]'},
1786        'environment_capacities': {'key': 'properties.environmentCapacities', 'type': '[StampCapacity]'},
1787        'network_access_control_list': {'key': 'properties.networkAccessControlList', 'type': '[NetworkAccessControlEntry]'},
1788        'environment_is_healthy': {'key': 'properties.environmentIsHealthy', 'type': 'bool'},
1789        'environment_status': {'key': 'properties.environmentStatus', 'type': 'str'},
1790        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
1791        'front_end_scale_factor': {'key': 'properties.frontEndScaleFactor', 'type': 'int'},
1792        'default_front_end_scale_factor': {'key': 'properties.defaultFrontEndScaleFactor', 'type': 'int'},
1793        'api_management_account_id': {'key': 'properties.apiManagementAccountId', 'type': 'str'},
1794        'suspended': {'key': 'properties.suspended', 'type': 'bool'},
1795        'dynamic_cache_enabled': {'key': 'properties.dynamicCacheEnabled', 'type': 'bool'},
1796        'cluster_settings': {'key': 'properties.clusterSettings', 'type': '[NameValuePair]'},
1797        'user_whitelisted_ip_ranges': {'key': 'properties.userWhitelistedIpRanges', 'type': '[str]'},
1798        'has_linux_workers': {'key': 'properties.hasLinuxWorkers', 'type': 'bool'},
1799        'ssl_cert_key_vault_id': {'key': 'properties.sslCertKeyVaultId', 'type': 'str'},
1800        'ssl_cert_key_vault_secret_name': {'key': 'properties.sslCertKeyVaultSecretName', 'type': 'str'},
1801    }
1802
1803    def __init__(
1804        self,
1805        **kwargs
1806    ):
1807        super(AppServiceEnvironmentResource, self).__init__(**kwargs)
1808        self.name_properties_name = kwargs.get('name_properties_name', None)
1809        self.location_properties_location = kwargs.get('location_properties_location', None)
1810        self.provisioning_state = None
1811        self.status = None
1812        self.vnet_name = kwargs.get('vnet_name', None)
1813        self.vnet_resource_group_name = kwargs.get('vnet_resource_group_name', None)
1814        self.vnet_subnet_name = kwargs.get('vnet_subnet_name', None)
1815        self.virtual_network = kwargs.get('virtual_network', None)
1816        self.internal_load_balancing_mode = kwargs.get('internal_load_balancing_mode', None)
1817        self.multi_size = kwargs.get('multi_size', None)
1818        self.multi_role_count = kwargs.get('multi_role_count', None)
1819        self.worker_pools = kwargs.get('worker_pools', None)
1820        self.ipssl_address_count = kwargs.get('ipssl_address_count', None)
1821        self.database_edition = None
1822        self.database_service_objective = None
1823        self.upgrade_domains = None
1824        self.subscription_id = None
1825        self.dns_suffix = kwargs.get('dns_suffix', None)
1826        self.last_action = None
1827        self.last_action_result = None
1828        self.allowed_multi_sizes = None
1829        self.allowed_worker_sizes = None
1830        self.maximum_number_of_machines = None
1831        self.vip_mappings = None
1832        self.environment_capacities = None
1833        self.network_access_control_list = kwargs.get('network_access_control_list', None)
1834        self.environment_is_healthy = None
1835        self.environment_status = None
1836        self.resource_group = None
1837        self.front_end_scale_factor = kwargs.get('front_end_scale_factor', None)
1838        self.default_front_end_scale_factor = None
1839        self.api_management_account_id = kwargs.get('api_management_account_id', None)
1840        self.suspended = kwargs.get('suspended', None)
1841        self.dynamic_cache_enabled = kwargs.get('dynamic_cache_enabled', None)
1842        self.cluster_settings = kwargs.get('cluster_settings', None)
1843        self.user_whitelisted_ip_ranges = kwargs.get('user_whitelisted_ip_ranges', None)
1844        self.has_linux_workers = kwargs.get('has_linux_workers', None)
1845        self.ssl_cert_key_vault_id = kwargs.get('ssl_cert_key_vault_id', None)
1846        self.ssl_cert_key_vault_secret_name = kwargs.get('ssl_cert_key_vault_secret_name', None)
1847
1848
1849class AppserviceGithubToken(msrest.serialization.Model):
1850    """Github access token for Appservice CLI github integration.
1851
1852    :param access_token: Github access token for Appservice CLI github integration.
1853    :type access_token: str
1854    :param scope: Scope of the github access token.
1855    :type scope: str
1856    :param token_type: token type.
1857    :type token_type: str
1858    :param got_token: True if valid github token received, False otherwise.
1859    :type got_token: bool
1860    :param error_message: Error message if unable to get token.
1861    :type error_message: str
1862    """
1863
1864    _attribute_map = {
1865        'access_token': {'key': 'accessToken', 'type': 'str'},
1866        'scope': {'key': 'scope', 'type': 'str'},
1867        'token_type': {'key': 'tokenType', 'type': 'str'},
1868        'got_token': {'key': 'gotToken', 'type': 'bool'},
1869        'error_message': {'key': 'errorMessage', 'type': 'str'},
1870    }
1871
1872    def __init__(
1873        self,
1874        **kwargs
1875    ):
1876        super(AppserviceGithubToken, self).__init__(**kwargs)
1877        self.access_token = kwargs.get('access_token', None)
1878        self.scope = kwargs.get('scope', None)
1879        self.token_type = kwargs.get('token_type', None)
1880        self.got_token = kwargs.get('got_token', None)
1881        self.error_message = kwargs.get('error_message', None)
1882
1883
1884class AppserviceGithubTokenRequest(msrest.serialization.Model):
1885    """Appservice Github token request content.
1886
1887    All required parameters must be populated in order to send to Azure.
1888
1889    :param code: Required. Code string to exchange for Github Access token.
1890    :type code: str
1891    :param state: Required. State string used for verification.
1892    :type state: str
1893    """
1894
1895    _validation = {
1896        'code': {'required': True},
1897        'state': {'required': True},
1898    }
1899
1900    _attribute_map = {
1901        'code': {'key': 'code', 'type': 'str'},
1902        'state': {'key': 'state', 'type': 'str'},
1903    }
1904
1905    def __init__(
1906        self,
1907        **kwargs
1908    ):
1909        super(AppserviceGithubTokenRequest, self).__init__(**kwargs)
1910        self.code = kwargs['code']
1911        self.state = kwargs['state']
1912
1913
1914class AppServicePlan(Resource):
1915    """App Service plan.
1916
1917    Variables are only populated by the server, and will be ignored when sending a request.
1918
1919    All required parameters must be populated in order to send to Azure.
1920
1921    :ivar id: Resource Id.
1922    :vartype id: str
1923    :ivar name: Resource Name.
1924    :vartype name: str
1925    :param kind: Kind of resource.
1926    :type kind: str
1927    :param location: Required. Resource Location.
1928    :type location: str
1929    :ivar type: Resource type.
1930    :vartype type: str
1931    :param tags: A set of tags. Resource tags.
1932    :type tags: dict[str, str]
1933    :ivar system_data: The system metadata relating to this resource.
1934    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
1935    :param sku: Description of a SKU for a scalable resource.
1936    :type sku: ~azure.mgmt.web.v2020_09_01.models.SkuDescription
1937    :param worker_tier_name: Target worker tier assigned to the App Service plan.
1938    :type worker_tier_name: str
1939    :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating".
1940    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.StatusOptions
1941    :ivar subscription: App Service plan subscription.
1942    :vartype subscription: str
1943    :param hosting_environment_profile: Specification for the App Service Environment to use for
1944     the App Service plan.
1945    :type hosting_environment_profile: ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
1946    :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App
1947     Service plan.
1948    :vartype maximum_number_of_workers: int
1949    :ivar geo_region: Geographical location for the App Service plan.
1950    :vartype geo_region: str
1951    :param per_site_scaling: If :code:`<code>true</code>`, apps assigned to this App Service plan
1952     can be scaled independently.
1953     If :code:`<code>false</code>`, apps assigned to this App Service plan will scale to all
1954     instances of the plan.
1955    :type per_site_scaling: bool
1956    :param maximum_elastic_worker_count: Maximum number of total workers allowed for this
1957     ElasticScaleEnabled App Service Plan.
1958    :type maximum_elastic_worker_count: int
1959    :ivar number_of_sites: Number of apps assigned to this App Service plan.
1960    :vartype number_of_sites: int
1961    :param is_spot: If :code:`<code>true</code>`, this App Service Plan owns spot instances.
1962    :type is_spot: bool
1963    :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot
1964     server farm.
1965    :type spot_expiration_time: ~datetime.datetime
1966    :param free_offer_expiration_time: The time when the server farm free offer expires.
1967    :type free_offer_expiration_time: ~datetime.datetime
1968    :ivar resource_group: Resource group of the App Service plan.
1969    :vartype resource_group: str
1970    :param reserved: If Linux app service plan :code:`<code>true</code>`,
1971     :code:`<code>false</code>` otherwise.
1972    :type reserved: bool
1973    :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`<code>true</code>`,
1974     :code:`<code>false</code>` otherwise.
1975    :type is_xenon: bool
1976    :param hyper_v: If Hyper-V container app service plan :code:`<code>true</code>`,
1977     :code:`<code>false</code>` otherwise.
1978    :type hyper_v: bool
1979    :param target_worker_count: Scaling worker count.
1980    :type target_worker_count: int
1981    :param target_worker_size_id: Scaling worker size ID.
1982    :type target_worker_size_id: int
1983    :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values
1984     include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting".
1985    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
1986    """
1987
1988    _validation = {
1989        'id': {'readonly': True},
1990        'name': {'readonly': True},
1991        'location': {'required': True},
1992        'type': {'readonly': True},
1993        'system_data': {'readonly': True},
1994        'status': {'readonly': True},
1995        'subscription': {'readonly': True},
1996        'maximum_number_of_workers': {'readonly': True},
1997        'geo_region': {'readonly': True},
1998        'number_of_sites': {'readonly': True},
1999        'resource_group': {'readonly': True},
2000        'provisioning_state': {'readonly': True},
2001    }
2002
2003    _attribute_map = {
2004        'id': {'key': 'id', 'type': 'str'},
2005        'name': {'key': 'name', 'type': 'str'},
2006        'kind': {'key': 'kind', 'type': 'str'},
2007        'location': {'key': 'location', 'type': 'str'},
2008        'type': {'key': 'type', 'type': 'str'},
2009        'tags': {'key': 'tags', 'type': '{str}'},
2010        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2011        'sku': {'key': 'sku', 'type': 'SkuDescription'},
2012        'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'},
2013        'status': {'key': 'properties.status', 'type': 'str'},
2014        'subscription': {'key': 'properties.subscription', 'type': 'str'},
2015        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
2016        'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'},
2017        'geo_region': {'key': 'properties.geoRegion', 'type': 'str'},
2018        'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'},
2019        'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'},
2020        'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'},
2021        'is_spot': {'key': 'properties.isSpot', 'type': 'bool'},
2022        'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'},
2023        'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'},
2024        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
2025        'reserved': {'key': 'properties.reserved', 'type': 'bool'},
2026        'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'},
2027        'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'},
2028        'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'},
2029        'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'},
2030        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
2031    }
2032
2033    def __init__(
2034        self,
2035        **kwargs
2036    ):
2037        super(AppServicePlan, self).__init__(**kwargs)
2038        self.sku = kwargs.get('sku', None)
2039        self.worker_tier_name = kwargs.get('worker_tier_name', None)
2040        self.status = None
2041        self.subscription = None
2042        self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None)
2043        self.maximum_number_of_workers = None
2044        self.geo_region = None
2045        self.per_site_scaling = kwargs.get('per_site_scaling', False)
2046        self.maximum_elastic_worker_count = kwargs.get('maximum_elastic_worker_count', None)
2047        self.number_of_sites = None
2048        self.is_spot = kwargs.get('is_spot', None)
2049        self.spot_expiration_time = kwargs.get('spot_expiration_time', None)
2050        self.free_offer_expiration_time = kwargs.get('free_offer_expiration_time', None)
2051        self.resource_group = None
2052        self.reserved = kwargs.get('reserved', False)
2053        self.is_xenon = kwargs.get('is_xenon', False)
2054        self.hyper_v = kwargs.get('hyper_v', False)
2055        self.target_worker_count = kwargs.get('target_worker_count', None)
2056        self.target_worker_size_id = kwargs.get('target_worker_size_id', None)
2057        self.provisioning_state = None
2058
2059
2060class AppServicePlanCollection(msrest.serialization.Model):
2061    """Collection of App Service plans.
2062
2063    Variables are only populated by the server, and will be ignored when sending a request.
2064
2065    All required parameters must be populated in order to send to Azure.
2066
2067    :param value: Required. Collection of resources.
2068    :type value: list[~azure.mgmt.web.v2020_09_01.models.AppServicePlan]
2069    :ivar next_link: Link to next page of resources.
2070    :vartype next_link: str
2071    """
2072
2073    _validation = {
2074        'value': {'required': True},
2075        'next_link': {'readonly': True},
2076    }
2077
2078    _attribute_map = {
2079        'value': {'key': 'value', 'type': '[AppServicePlan]'},
2080        'next_link': {'key': 'nextLink', 'type': 'str'},
2081    }
2082
2083    def __init__(
2084        self,
2085        **kwargs
2086    ):
2087        super(AppServicePlanCollection, self).__init__(**kwargs)
2088        self.value = kwargs['value']
2089        self.next_link = None
2090
2091
2092class AppServicePlanPatchResource(ProxyOnlyResource):
2093    """ARM resource for a app service plan.
2094
2095    Variables are only populated by the server, and will be ignored when sending a request.
2096
2097    :ivar id: Resource Id.
2098    :vartype id: str
2099    :ivar name: Resource Name.
2100    :vartype name: str
2101    :param kind: Kind of resource.
2102    :type kind: str
2103    :ivar type: Resource type.
2104    :vartype type: str
2105    :ivar system_data: The system metadata relating to this resource.
2106    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2107    :param worker_tier_name: Target worker tier assigned to the App Service plan.
2108    :type worker_tier_name: str
2109    :ivar status: App Service plan status. Possible values include: "Ready", "Pending", "Creating".
2110    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.StatusOptions
2111    :ivar subscription: App Service plan subscription.
2112    :vartype subscription: str
2113    :param hosting_environment_profile: Specification for the App Service Environment to use for
2114     the App Service plan.
2115    :type hosting_environment_profile: ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
2116    :ivar maximum_number_of_workers: Maximum number of instances that can be assigned to this App
2117     Service plan.
2118    :vartype maximum_number_of_workers: int
2119    :ivar geo_region: Geographical location for the App Service plan.
2120    :vartype geo_region: str
2121    :param per_site_scaling: If :code:`<code>true</code>`, apps assigned to this App Service plan
2122     can be scaled independently.
2123     If :code:`<code>false</code>`, apps assigned to this App Service plan will scale to all
2124     instances of the plan.
2125    :type per_site_scaling: bool
2126    :param maximum_elastic_worker_count: Maximum number of total workers allowed for this
2127     ElasticScaleEnabled App Service Plan.
2128    :type maximum_elastic_worker_count: int
2129    :ivar number_of_sites: Number of apps assigned to this App Service plan.
2130    :vartype number_of_sites: int
2131    :param is_spot: If :code:`<code>true</code>`, this App Service Plan owns spot instances.
2132    :type is_spot: bool
2133    :param spot_expiration_time: The time when the server farm expires. Valid only if it is a spot
2134     server farm.
2135    :type spot_expiration_time: ~datetime.datetime
2136    :param free_offer_expiration_time: The time when the server farm free offer expires.
2137    :type free_offer_expiration_time: ~datetime.datetime
2138    :ivar resource_group: Resource group of the App Service plan.
2139    :vartype resource_group: str
2140    :param reserved: This needs to set to :code:`<code>true</code>` when creating a Linux App
2141     Service Plan, along with :code:`<code>kind</code>` set to :code:`<code>Linux</code>`. It should
2142     be :code:`<code>false</code>` otherwise.
2143    :type reserved: bool
2144    :param is_xenon: Obsolete: If Hyper-V container app service plan :code:`<code>true</code>`,
2145     :code:`<code>false</code>` otherwise.
2146    :type is_xenon: bool
2147    :param hyper_v: If Hyper-V container app service plan :code:`<code>true</code>`,
2148     :code:`<code>false</code>` otherwise.
2149    :type hyper_v: bool
2150    :param target_worker_count: Scaling worker count.
2151    :type target_worker_count: int
2152    :param target_worker_size_id: Scaling worker size ID.
2153    :type target_worker_size_id: int
2154    :ivar provisioning_state: Provisioning state of the App Service Environment. Possible values
2155     include: "Succeeded", "Failed", "Canceled", "InProgress", "Deleting".
2156    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
2157    """
2158
2159    _validation = {
2160        'id': {'readonly': True},
2161        'name': {'readonly': True},
2162        'type': {'readonly': True},
2163        'system_data': {'readonly': True},
2164        'status': {'readonly': True},
2165        'subscription': {'readonly': True},
2166        'maximum_number_of_workers': {'readonly': True},
2167        'geo_region': {'readonly': True},
2168        'number_of_sites': {'readonly': True},
2169        'resource_group': {'readonly': True},
2170        'provisioning_state': {'readonly': True},
2171    }
2172
2173    _attribute_map = {
2174        'id': {'key': 'id', 'type': 'str'},
2175        'name': {'key': 'name', 'type': 'str'},
2176        'kind': {'key': 'kind', 'type': 'str'},
2177        'type': {'key': 'type', 'type': 'str'},
2178        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2179        'worker_tier_name': {'key': 'properties.workerTierName', 'type': 'str'},
2180        'status': {'key': 'properties.status', 'type': 'str'},
2181        'subscription': {'key': 'properties.subscription', 'type': 'str'},
2182        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
2183        'maximum_number_of_workers': {'key': 'properties.maximumNumberOfWorkers', 'type': 'int'},
2184        'geo_region': {'key': 'properties.geoRegion', 'type': 'str'},
2185        'per_site_scaling': {'key': 'properties.perSiteScaling', 'type': 'bool'},
2186        'maximum_elastic_worker_count': {'key': 'properties.maximumElasticWorkerCount', 'type': 'int'},
2187        'number_of_sites': {'key': 'properties.numberOfSites', 'type': 'int'},
2188        'is_spot': {'key': 'properties.isSpot', 'type': 'bool'},
2189        'spot_expiration_time': {'key': 'properties.spotExpirationTime', 'type': 'iso-8601'},
2190        'free_offer_expiration_time': {'key': 'properties.freeOfferExpirationTime', 'type': 'iso-8601'},
2191        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
2192        'reserved': {'key': 'properties.reserved', 'type': 'bool'},
2193        'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'},
2194        'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'},
2195        'target_worker_count': {'key': 'properties.targetWorkerCount', 'type': 'int'},
2196        'target_worker_size_id': {'key': 'properties.targetWorkerSizeId', 'type': 'int'},
2197        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
2198    }
2199
2200    def __init__(
2201        self,
2202        **kwargs
2203    ):
2204        super(AppServicePlanPatchResource, self).__init__(**kwargs)
2205        self.worker_tier_name = kwargs.get('worker_tier_name', None)
2206        self.status = None
2207        self.subscription = None
2208        self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None)
2209        self.maximum_number_of_workers = None
2210        self.geo_region = None
2211        self.per_site_scaling = kwargs.get('per_site_scaling', False)
2212        self.maximum_elastic_worker_count = kwargs.get('maximum_elastic_worker_count', None)
2213        self.number_of_sites = None
2214        self.is_spot = kwargs.get('is_spot', None)
2215        self.spot_expiration_time = kwargs.get('spot_expiration_time', None)
2216        self.free_offer_expiration_time = kwargs.get('free_offer_expiration_time', None)
2217        self.resource_group = None
2218        self.reserved = kwargs.get('reserved', False)
2219        self.is_xenon = kwargs.get('is_xenon', False)
2220        self.hyper_v = kwargs.get('hyper_v', False)
2221        self.target_worker_count = kwargs.get('target_worker_count', None)
2222        self.target_worker_size_id = kwargs.get('target_worker_size_id', None)
2223        self.provisioning_state = None
2224
2225
2226class ArmIdWrapper(msrest.serialization.Model):
2227    """A wrapper for an ARM resource id.
2228
2229    Variables are only populated by the server, and will be ignored when sending a request.
2230
2231    :ivar id:
2232    :vartype id: str
2233    """
2234
2235    _validation = {
2236        'id': {'readonly': True},
2237    }
2238
2239    _attribute_map = {
2240        'id': {'key': 'id', 'type': 'str'},
2241    }
2242
2243    def __init__(
2244        self,
2245        **kwargs
2246    ):
2247        super(ArmIdWrapper, self).__init__(**kwargs)
2248        self.id = None
2249
2250
2251class AuthPlatform(ProxyOnlyResource):
2252    """AuthPlatform.
2253
2254    Variables are only populated by the server, and will be ignored when sending a request.
2255
2256    :ivar id: Resource Id.
2257    :vartype id: str
2258    :ivar name: Resource Name.
2259    :vartype name: str
2260    :param kind: Kind of resource.
2261    :type kind: str
2262    :ivar type: Resource type.
2263    :vartype type: str
2264    :ivar system_data: The system metadata relating to this resource.
2265    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2266    :param enabled:
2267    :type enabled: bool
2268    :param runtime_version:
2269    :type runtime_version: str
2270    :param config_file_path:
2271    :type config_file_path: str
2272    """
2273
2274    _validation = {
2275        'id': {'readonly': True},
2276        'name': {'readonly': True},
2277        'type': {'readonly': True},
2278        'system_data': {'readonly': True},
2279    }
2280
2281    _attribute_map = {
2282        'id': {'key': 'id', 'type': 'str'},
2283        'name': {'key': 'name', 'type': 'str'},
2284        'kind': {'key': 'kind', 'type': 'str'},
2285        'type': {'key': 'type', 'type': 'str'},
2286        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2287        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
2288        'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'},
2289        'config_file_path': {'key': 'properties.configFilePath', 'type': 'str'},
2290    }
2291
2292    def __init__(
2293        self,
2294        **kwargs
2295    ):
2296        super(AuthPlatform, self).__init__(**kwargs)
2297        self.enabled = kwargs.get('enabled', None)
2298        self.runtime_version = kwargs.get('runtime_version', None)
2299        self.config_file_path = kwargs.get('config_file_path', None)
2300
2301
2302class AutoHealActions(msrest.serialization.Model):
2303    """Actions which to take by the auto-heal module when a rule is triggered.
2304
2305    :param action_type: Predefined action to be taken. Possible values include: "Recycle",
2306     "LogEvent", "CustomAction".
2307    :type action_type: str or ~azure.mgmt.web.v2020_09_01.models.AutoHealActionType
2308    :param custom_action: Custom action to be taken.
2309    :type custom_action: ~azure.mgmt.web.v2020_09_01.models.AutoHealCustomAction
2310    :param min_process_execution_time: Minimum time the process must execute
2311     before taking the action.
2312    :type min_process_execution_time: str
2313    """
2314
2315    _attribute_map = {
2316        'action_type': {'key': 'actionType', 'type': 'str'},
2317        'custom_action': {'key': 'customAction', 'type': 'AutoHealCustomAction'},
2318        'min_process_execution_time': {'key': 'minProcessExecutionTime', 'type': 'str'},
2319    }
2320
2321    def __init__(
2322        self,
2323        **kwargs
2324    ):
2325        super(AutoHealActions, self).__init__(**kwargs)
2326        self.action_type = kwargs.get('action_type', None)
2327        self.custom_action = kwargs.get('custom_action', None)
2328        self.min_process_execution_time = kwargs.get('min_process_execution_time', None)
2329
2330
2331class AutoHealCustomAction(msrest.serialization.Model):
2332    """Custom action to be executed
2333when an auto heal rule is triggered.
2334
2335    :param exe: Executable to be run.
2336    :type exe: str
2337    :param parameters: Parameters for the executable.
2338    :type parameters: str
2339    """
2340
2341    _attribute_map = {
2342        'exe': {'key': 'exe', 'type': 'str'},
2343        'parameters': {'key': 'parameters', 'type': 'str'},
2344    }
2345
2346    def __init__(
2347        self,
2348        **kwargs
2349    ):
2350        super(AutoHealCustomAction, self).__init__(**kwargs)
2351        self.exe = kwargs.get('exe', None)
2352        self.parameters = kwargs.get('parameters', None)
2353
2354
2355class AutoHealRules(msrest.serialization.Model):
2356    """Rules that can be defined for auto-heal.
2357
2358    :param triggers: Conditions that describe when to execute the auto-heal actions.
2359    :type triggers: ~azure.mgmt.web.v2020_09_01.models.AutoHealTriggers
2360    :param actions: Actions to be executed when a rule is triggered.
2361    :type actions: ~azure.mgmt.web.v2020_09_01.models.AutoHealActions
2362    """
2363
2364    _attribute_map = {
2365        'triggers': {'key': 'triggers', 'type': 'AutoHealTriggers'},
2366        'actions': {'key': 'actions', 'type': 'AutoHealActions'},
2367    }
2368
2369    def __init__(
2370        self,
2371        **kwargs
2372    ):
2373        super(AutoHealRules, self).__init__(**kwargs)
2374        self.triggers = kwargs.get('triggers', None)
2375        self.actions = kwargs.get('actions', None)
2376
2377
2378class AutoHealTriggers(msrest.serialization.Model):
2379    """Triggers for auto-heal.
2380
2381    :param requests: A rule based on total requests.
2382    :type requests: ~azure.mgmt.web.v2020_09_01.models.RequestsBasedTrigger
2383    :param private_bytes_in_kb: A rule based on private bytes.
2384    :type private_bytes_in_kb: int
2385    :param status_codes: A rule based on status codes.
2386    :type status_codes: list[~azure.mgmt.web.v2020_09_01.models.StatusCodesBasedTrigger]
2387    :param slow_requests: A rule based on request execution time.
2388    :type slow_requests: ~azure.mgmt.web.v2020_09_01.models.SlowRequestsBasedTrigger
2389    """
2390
2391    _attribute_map = {
2392        'requests': {'key': 'requests', 'type': 'RequestsBasedTrigger'},
2393        'private_bytes_in_kb': {'key': 'privateBytesInKB', 'type': 'int'},
2394        'status_codes': {'key': 'statusCodes', 'type': '[StatusCodesBasedTrigger]'},
2395        'slow_requests': {'key': 'slowRequests', 'type': 'SlowRequestsBasedTrigger'},
2396    }
2397
2398    def __init__(
2399        self,
2400        **kwargs
2401    ):
2402        super(AutoHealTriggers, self).__init__(**kwargs)
2403        self.requests = kwargs.get('requests', None)
2404        self.private_bytes_in_kb = kwargs.get('private_bytes_in_kb', None)
2405        self.status_codes = kwargs.get('status_codes', None)
2406        self.slow_requests = kwargs.get('slow_requests', None)
2407
2408
2409class AzureActiveDirectory(ProxyOnlyResource):
2410    """AzureActiveDirectory.
2411
2412    Variables are only populated by the server, and will be ignored when sending a request.
2413
2414    :ivar id: Resource Id.
2415    :vartype id: str
2416    :ivar name: Resource Name.
2417    :vartype name: str
2418    :param kind: Kind of resource.
2419    :type kind: str
2420    :ivar type: Resource type.
2421    :vartype type: str
2422    :ivar system_data: The system metadata relating to this resource.
2423    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2424    :param enabled:
2425    :type enabled: bool
2426    :param registration:
2427    :type registration: ~azure.mgmt.web.v2020_09_01.models.AzureActiveDirectoryRegistration
2428    :param login:
2429    :type login: ~azure.mgmt.web.v2020_09_01.models.AzureActiveDirectoryLogin
2430    :param validation:
2431    :type validation: ~azure.mgmt.web.v2020_09_01.models.AzureActiveDirectoryValidation
2432    :param is_auto_provisioned:
2433    :type is_auto_provisioned: bool
2434    """
2435
2436    _validation = {
2437        'id': {'readonly': True},
2438        'name': {'readonly': True},
2439        'type': {'readonly': True},
2440        'system_data': {'readonly': True},
2441    }
2442
2443    _attribute_map = {
2444        'id': {'key': 'id', 'type': 'str'},
2445        'name': {'key': 'name', 'type': 'str'},
2446        'kind': {'key': 'kind', 'type': 'str'},
2447        'type': {'key': 'type', 'type': 'str'},
2448        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2449        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
2450        'registration': {'key': 'properties.registration', 'type': 'AzureActiveDirectoryRegistration'},
2451        'login': {'key': 'properties.login', 'type': 'AzureActiveDirectoryLogin'},
2452        'validation': {'key': 'properties.validation', 'type': 'AzureActiveDirectoryValidation'},
2453        'is_auto_provisioned': {'key': 'properties.isAutoProvisioned', 'type': 'bool'},
2454    }
2455
2456    def __init__(
2457        self,
2458        **kwargs
2459    ):
2460        super(AzureActiveDirectory, self).__init__(**kwargs)
2461        self.enabled = kwargs.get('enabled', None)
2462        self.registration = kwargs.get('registration', None)
2463        self.login = kwargs.get('login', None)
2464        self.validation = kwargs.get('validation', None)
2465        self.is_auto_provisioned = kwargs.get('is_auto_provisioned', None)
2466
2467
2468class AzureActiveDirectoryLogin(ProxyOnlyResource):
2469    """AzureActiveDirectoryLogin.
2470
2471    Variables are only populated by the server, and will be ignored when sending a request.
2472
2473    :ivar id: Resource Id.
2474    :vartype id: str
2475    :ivar name: Resource Name.
2476    :vartype name: str
2477    :param kind: Kind of resource.
2478    :type kind: str
2479    :ivar type: Resource type.
2480    :vartype type: str
2481    :ivar system_data: The system metadata relating to this resource.
2482    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2483    :param disable_www_authenticate:
2484    :type disable_www_authenticate: bool
2485    :param login_parameters:
2486    :type login_parameters: list[str]
2487    """
2488
2489    _validation = {
2490        'id': {'readonly': True},
2491        'name': {'readonly': True},
2492        'type': {'readonly': True},
2493        'system_data': {'readonly': True},
2494    }
2495
2496    _attribute_map = {
2497        'id': {'key': 'id', 'type': 'str'},
2498        'name': {'key': 'name', 'type': 'str'},
2499        'kind': {'key': 'kind', 'type': 'str'},
2500        'type': {'key': 'type', 'type': 'str'},
2501        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2502        'disable_www_authenticate': {'key': 'properties.disableWWWAuthenticate', 'type': 'bool'},
2503        'login_parameters': {'key': 'properties.loginParameters', 'type': '[str]'},
2504    }
2505
2506    def __init__(
2507        self,
2508        **kwargs
2509    ):
2510        super(AzureActiveDirectoryLogin, self).__init__(**kwargs)
2511        self.disable_www_authenticate = kwargs.get('disable_www_authenticate', None)
2512        self.login_parameters = kwargs.get('login_parameters', None)
2513
2514
2515class AzureActiveDirectoryRegistration(ProxyOnlyResource):
2516    """AzureActiveDirectoryRegistration.
2517
2518    Variables are only populated by the server, and will be ignored when sending a request.
2519
2520    :ivar id: Resource Id.
2521    :vartype id: str
2522    :ivar name: Resource Name.
2523    :vartype name: str
2524    :param kind: Kind of resource.
2525    :type kind: str
2526    :ivar type: Resource type.
2527    :vartype type: str
2528    :ivar system_data: The system metadata relating to this resource.
2529    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2530    :param open_id_issuer:
2531    :type open_id_issuer: str
2532    :param client_id:
2533    :type client_id: str
2534    :param client_secret_setting_name:
2535    :type client_secret_setting_name: str
2536    :param client_secret_certificate_thumbprint:
2537    :type client_secret_certificate_thumbprint: str
2538    """
2539
2540    _validation = {
2541        'id': {'readonly': True},
2542        'name': {'readonly': True},
2543        'type': {'readonly': True},
2544        'system_data': {'readonly': True},
2545    }
2546
2547    _attribute_map = {
2548        'id': {'key': 'id', 'type': 'str'},
2549        'name': {'key': 'name', 'type': 'str'},
2550        'kind': {'key': 'kind', 'type': 'str'},
2551        'type': {'key': 'type', 'type': 'str'},
2552        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2553        'open_id_issuer': {'key': 'properties.openIdIssuer', 'type': 'str'},
2554        'client_id': {'key': 'properties.clientId', 'type': 'str'},
2555        'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'},
2556        'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'},
2557    }
2558
2559    def __init__(
2560        self,
2561        **kwargs
2562    ):
2563        super(AzureActiveDirectoryRegistration, self).__init__(**kwargs)
2564        self.open_id_issuer = kwargs.get('open_id_issuer', None)
2565        self.client_id = kwargs.get('client_id', None)
2566        self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None)
2567        self.client_secret_certificate_thumbprint = kwargs.get('client_secret_certificate_thumbprint', None)
2568
2569
2570class AzureActiveDirectoryValidation(ProxyOnlyResource):
2571    """AzureActiveDirectoryValidation.
2572
2573    Variables are only populated by the server, and will be ignored when sending a request.
2574
2575    :ivar id: Resource Id.
2576    :vartype id: str
2577    :ivar name: Resource Name.
2578    :vartype name: str
2579    :param kind: Kind of resource.
2580    :type kind: str
2581    :ivar type: Resource type.
2582    :vartype type: str
2583    :ivar system_data: The system metadata relating to this resource.
2584    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2585    :param jwt_claim_checks:
2586    :type jwt_claim_checks: ~azure.mgmt.web.v2020_09_01.models.JwtClaimChecks
2587    :param allowed_audiences:
2588    :type allowed_audiences: list[str]
2589    """
2590
2591    _validation = {
2592        'id': {'readonly': True},
2593        'name': {'readonly': True},
2594        'type': {'readonly': True},
2595        'system_data': {'readonly': True},
2596    }
2597
2598    _attribute_map = {
2599        'id': {'key': 'id', 'type': 'str'},
2600        'name': {'key': 'name', 'type': 'str'},
2601        'kind': {'key': 'kind', 'type': 'str'},
2602        'type': {'key': 'type', 'type': 'str'},
2603        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2604        'jwt_claim_checks': {'key': 'properties.jwtClaimChecks', 'type': 'JwtClaimChecks'},
2605        'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'},
2606    }
2607
2608    def __init__(
2609        self,
2610        **kwargs
2611    ):
2612        super(AzureActiveDirectoryValidation, self).__init__(**kwargs)
2613        self.jwt_claim_checks = kwargs.get('jwt_claim_checks', None)
2614        self.allowed_audiences = kwargs.get('allowed_audiences', None)
2615
2616
2617class AzureBlobStorageApplicationLogsConfig(msrest.serialization.Model):
2618    """Application logs azure blob storage configuration.
2619
2620    :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning",
2621     "Error".
2622    :type level: str or ~azure.mgmt.web.v2020_09_01.models.LogLevel
2623    :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions.
2624    :type sas_url: str
2625    :param retention_in_days: Retention in days.
2626     Remove blobs older than X days.
2627     0 or lower means no retention.
2628    :type retention_in_days: int
2629    """
2630
2631    _attribute_map = {
2632        'level': {'key': 'level', 'type': 'str'},
2633        'sas_url': {'key': 'sasUrl', 'type': 'str'},
2634        'retention_in_days': {'key': 'retentionInDays', 'type': 'int'},
2635    }
2636
2637    def __init__(
2638        self,
2639        **kwargs
2640    ):
2641        super(AzureBlobStorageApplicationLogsConfig, self).__init__(**kwargs)
2642        self.level = kwargs.get('level', None)
2643        self.sas_url = kwargs.get('sas_url', None)
2644        self.retention_in_days = kwargs.get('retention_in_days', None)
2645
2646
2647class AzureBlobStorageHttpLogsConfig(msrest.serialization.Model):
2648    """Http logs to azure blob storage configuration.
2649
2650    :param sas_url: SAS url to a azure blob container with read/write/list/delete permissions.
2651    :type sas_url: str
2652    :param retention_in_days: Retention in days.
2653     Remove blobs older than X days.
2654     0 or lower means no retention.
2655    :type retention_in_days: int
2656    :param enabled: True if configuration is enabled, false if it is disabled and null if
2657     configuration is not set.
2658    :type enabled: bool
2659    """
2660
2661    _attribute_map = {
2662        'sas_url': {'key': 'sasUrl', 'type': 'str'},
2663        'retention_in_days': {'key': 'retentionInDays', 'type': 'int'},
2664        'enabled': {'key': 'enabled', 'type': 'bool'},
2665    }
2666
2667    def __init__(
2668        self,
2669        **kwargs
2670    ):
2671        super(AzureBlobStorageHttpLogsConfig, self).__init__(**kwargs)
2672        self.sas_url = kwargs.get('sas_url', None)
2673        self.retention_in_days = kwargs.get('retention_in_days', None)
2674        self.enabled = kwargs.get('enabled', None)
2675
2676
2677class AzureStorageInfoValue(msrest.serialization.Model):
2678    """Azure Files or Blob Storage access information value for dictionary storage.
2679
2680    Variables are only populated by the server, and will be ignored when sending a request.
2681
2682    :param type: Type of storage. Possible values include: "AzureFiles", "AzureBlob".
2683    :type type: str or ~azure.mgmt.web.v2020_09_01.models.AzureStorageType
2684    :param account_name: Name of the storage account.
2685    :type account_name: str
2686    :param share_name: Name of the file share (container name, for Blob storage).
2687    :type share_name: str
2688    :param access_key: Access key for the storage account.
2689    :type access_key: str
2690    :param mount_path: Path to mount the storage within the site's runtime environment.
2691    :type mount_path: str
2692    :ivar state: State of the storage account. Possible values include: "Ok", "InvalidCredentials",
2693     "InvalidShare".
2694    :vartype state: str or ~azure.mgmt.web.v2020_09_01.models.AzureStorageState
2695    """
2696
2697    _validation = {
2698        'state': {'readonly': True},
2699    }
2700
2701    _attribute_map = {
2702        'type': {'key': 'type', 'type': 'str'},
2703        'account_name': {'key': 'accountName', 'type': 'str'},
2704        'share_name': {'key': 'shareName', 'type': 'str'},
2705        'access_key': {'key': 'accessKey', 'type': 'str'},
2706        'mount_path': {'key': 'mountPath', 'type': 'str'},
2707        'state': {'key': 'state', 'type': 'str'},
2708    }
2709
2710    def __init__(
2711        self,
2712        **kwargs
2713    ):
2714        super(AzureStorageInfoValue, self).__init__(**kwargs)
2715        self.type = kwargs.get('type', None)
2716        self.account_name = kwargs.get('account_name', None)
2717        self.share_name = kwargs.get('share_name', None)
2718        self.access_key = kwargs.get('access_key', None)
2719        self.mount_path = kwargs.get('mount_path', None)
2720        self.state = None
2721
2722
2723class AzureStoragePropertyDictionaryResource(ProxyOnlyResource):
2724    """AzureStorageInfo dictionary resource.
2725
2726    Variables are only populated by the server, and will be ignored when sending a request.
2727
2728    :ivar id: Resource Id.
2729    :vartype id: str
2730    :ivar name: Resource Name.
2731    :vartype name: str
2732    :param kind: Kind of resource.
2733    :type kind: str
2734    :ivar type: Resource type.
2735    :vartype type: str
2736    :ivar system_data: The system metadata relating to this resource.
2737    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2738    :param properties: Azure storage accounts.
2739    :type properties: dict[str, ~azure.mgmt.web.v2020_09_01.models.AzureStorageInfoValue]
2740    """
2741
2742    _validation = {
2743        'id': {'readonly': True},
2744        'name': {'readonly': True},
2745        'type': {'readonly': True},
2746        'system_data': {'readonly': True},
2747    }
2748
2749    _attribute_map = {
2750        'id': {'key': 'id', 'type': 'str'},
2751        'name': {'key': 'name', 'type': 'str'},
2752        'kind': {'key': 'kind', 'type': 'str'},
2753        'type': {'key': 'type', 'type': 'str'},
2754        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2755        'properties': {'key': 'properties', 'type': '{AzureStorageInfoValue}'},
2756    }
2757
2758    def __init__(
2759        self,
2760        **kwargs
2761    ):
2762        super(AzureStoragePropertyDictionaryResource, self).__init__(**kwargs)
2763        self.properties = kwargs.get('properties', None)
2764
2765
2766class AzureTableStorageApplicationLogsConfig(msrest.serialization.Model):
2767    """Application logs to Azure table storage configuration.
2768
2769    All required parameters must be populated in order to send to Azure.
2770
2771    :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning",
2772     "Error".
2773    :type level: str or ~azure.mgmt.web.v2020_09_01.models.LogLevel
2774    :param sas_url: Required. SAS URL to an Azure table with add/query/delete permissions.
2775    :type sas_url: str
2776    """
2777
2778    _validation = {
2779        'sas_url': {'required': True},
2780    }
2781
2782    _attribute_map = {
2783        'level': {'key': 'level', 'type': 'str'},
2784        'sas_url': {'key': 'sasUrl', 'type': 'str'},
2785    }
2786
2787    def __init__(
2788        self,
2789        **kwargs
2790    ):
2791        super(AzureTableStorageApplicationLogsConfig, self).__init__(**kwargs)
2792        self.level = kwargs.get('level', None)
2793        self.sas_url = kwargs['sas_url']
2794
2795
2796class BackupItem(ProxyOnlyResource):
2797    """Backup description.
2798
2799    Variables are only populated by the server, and will be ignored when sending a request.
2800
2801    :ivar id: Resource Id.
2802    :vartype id: str
2803    :ivar name: Resource Name.
2804    :vartype name: str
2805    :param kind: Kind of resource.
2806    :type kind: str
2807    :ivar type: Resource type.
2808    :vartype type: str
2809    :ivar system_data: The system metadata relating to this resource.
2810    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2811    :ivar backup_id: Id of the backup.
2812    :vartype backup_id: int
2813    :ivar storage_account_url: SAS URL for the storage account container which contains this
2814     backup.
2815    :vartype storage_account_url: str
2816    :ivar blob_name: Name of the blob which contains data for this backup.
2817    :vartype blob_name: str
2818    :ivar name_properties_name: Name of this backup.
2819    :vartype name_properties_name: str
2820    :ivar status: Backup status. Possible values include: "InProgress", "Failed", "Succeeded",
2821     "TimedOut", "Created", "Skipped", "PartiallySucceeded", "DeleteInProgress", "DeleteFailed",
2822     "Deleted".
2823    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.BackupItemStatus
2824    :ivar size_in_bytes: Size of the backup in bytes.
2825    :vartype size_in_bytes: long
2826    :ivar created: Timestamp of the backup creation.
2827    :vartype created: ~datetime.datetime
2828    :ivar log: Details regarding this backup. Might contain an error message.
2829    :vartype log: str
2830    :ivar databases: List of databases included in the backup.
2831    :vartype databases: list[~azure.mgmt.web.v2020_09_01.models.DatabaseBackupSetting]
2832    :ivar scheduled: True if this backup has been created due to a schedule being triggered.
2833    :vartype scheduled: bool
2834    :ivar last_restore_time_stamp: Timestamp of a last restore operation which used this backup.
2835    :vartype last_restore_time_stamp: ~datetime.datetime
2836    :ivar finished_time_stamp: Timestamp when this backup finished.
2837    :vartype finished_time_stamp: ~datetime.datetime
2838    :ivar correlation_id: Unique correlation identifier. Please use this along with the timestamp
2839     while communicating with Azure support.
2840    :vartype correlation_id: str
2841    :ivar website_size_in_bytes: Size of the original web app which has been backed up.
2842    :vartype website_size_in_bytes: long
2843    """
2844
2845    _validation = {
2846        'id': {'readonly': True},
2847        'name': {'readonly': True},
2848        'type': {'readonly': True},
2849        'system_data': {'readonly': True},
2850        'backup_id': {'readonly': True},
2851        'storage_account_url': {'readonly': True},
2852        'blob_name': {'readonly': True},
2853        'name_properties_name': {'readonly': True},
2854        'status': {'readonly': True},
2855        'size_in_bytes': {'readonly': True},
2856        'created': {'readonly': True},
2857        'log': {'readonly': True},
2858        'databases': {'readonly': True},
2859        'scheduled': {'readonly': True},
2860        'last_restore_time_stamp': {'readonly': True},
2861        'finished_time_stamp': {'readonly': True},
2862        'correlation_id': {'readonly': True},
2863        'website_size_in_bytes': {'readonly': True},
2864    }
2865
2866    _attribute_map = {
2867        'id': {'key': 'id', 'type': 'str'},
2868        'name': {'key': 'name', 'type': 'str'},
2869        'kind': {'key': 'kind', 'type': 'str'},
2870        'type': {'key': 'type', 'type': 'str'},
2871        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2872        'backup_id': {'key': 'properties.id', 'type': 'int'},
2873        'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'},
2874        'blob_name': {'key': 'properties.blobName', 'type': 'str'},
2875        'name_properties_name': {'key': 'properties.name', 'type': 'str'},
2876        'status': {'key': 'properties.status', 'type': 'str'},
2877        'size_in_bytes': {'key': 'properties.sizeInBytes', 'type': 'long'},
2878        'created': {'key': 'properties.created', 'type': 'iso-8601'},
2879        'log': {'key': 'properties.log', 'type': 'str'},
2880        'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'},
2881        'scheduled': {'key': 'properties.scheduled', 'type': 'bool'},
2882        'last_restore_time_stamp': {'key': 'properties.lastRestoreTimeStamp', 'type': 'iso-8601'},
2883        'finished_time_stamp': {'key': 'properties.finishedTimeStamp', 'type': 'iso-8601'},
2884        'correlation_id': {'key': 'properties.correlationId', 'type': 'str'},
2885        'website_size_in_bytes': {'key': 'properties.websiteSizeInBytes', 'type': 'long'},
2886    }
2887
2888    def __init__(
2889        self,
2890        **kwargs
2891    ):
2892        super(BackupItem, self).__init__(**kwargs)
2893        self.backup_id = None
2894        self.storage_account_url = None
2895        self.blob_name = None
2896        self.name_properties_name = None
2897        self.status = None
2898        self.size_in_bytes = None
2899        self.created = None
2900        self.log = None
2901        self.databases = None
2902        self.scheduled = None
2903        self.last_restore_time_stamp = None
2904        self.finished_time_stamp = None
2905        self.correlation_id = None
2906        self.website_size_in_bytes = None
2907
2908
2909class BackupItemCollection(msrest.serialization.Model):
2910    """Collection of backup items.
2911
2912    Variables are only populated by the server, and will be ignored when sending a request.
2913
2914    All required parameters must be populated in order to send to Azure.
2915
2916    :param value: Required. Collection of resources.
2917    :type value: list[~azure.mgmt.web.v2020_09_01.models.BackupItem]
2918    :ivar next_link: Link to next page of resources.
2919    :vartype next_link: str
2920    """
2921
2922    _validation = {
2923        'value': {'required': True},
2924        'next_link': {'readonly': True},
2925    }
2926
2927    _attribute_map = {
2928        'value': {'key': 'value', 'type': '[BackupItem]'},
2929        'next_link': {'key': 'nextLink', 'type': 'str'},
2930    }
2931
2932    def __init__(
2933        self,
2934        **kwargs
2935    ):
2936        super(BackupItemCollection, self).__init__(**kwargs)
2937        self.value = kwargs['value']
2938        self.next_link = None
2939
2940
2941class BackupRequest(ProxyOnlyResource):
2942    """Description of a backup which will be performed.
2943
2944    Variables are only populated by the server, and will be ignored when sending a request.
2945
2946    :ivar id: Resource Id.
2947    :vartype id: str
2948    :ivar name: Resource Name.
2949    :vartype name: str
2950    :param kind: Kind of resource.
2951    :type kind: str
2952    :ivar type: Resource type.
2953    :vartype type: str
2954    :ivar system_data: The system metadata relating to this resource.
2955    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
2956    :param backup_name: Name of the backup.
2957    :type backup_name: str
2958    :param enabled: True if the backup schedule is enabled (must be included in that case), false
2959     if the backup schedule should be disabled.
2960    :type enabled: bool
2961    :param storage_account_url: SAS URL to the container.
2962    :type storage_account_url: str
2963    :param backup_schedule: Schedule for the backup if it is executed periodically.
2964    :type backup_schedule: ~azure.mgmt.web.v2020_09_01.models.BackupSchedule
2965    :param databases: Databases included in the backup.
2966    :type databases: list[~azure.mgmt.web.v2020_09_01.models.DatabaseBackupSetting]
2967    """
2968
2969    _validation = {
2970        'id': {'readonly': True},
2971        'name': {'readonly': True},
2972        'type': {'readonly': True},
2973        'system_data': {'readonly': True},
2974    }
2975
2976    _attribute_map = {
2977        'id': {'key': 'id', 'type': 'str'},
2978        'name': {'key': 'name', 'type': 'str'},
2979        'kind': {'key': 'kind', 'type': 'str'},
2980        'type': {'key': 'type', 'type': 'str'},
2981        'system_data': {'key': 'systemData', 'type': 'SystemData'},
2982        'backup_name': {'key': 'properties.backupName', 'type': 'str'},
2983        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
2984        'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'},
2985        'backup_schedule': {'key': 'properties.backupSchedule', 'type': 'BackupSchedule'},
2986        'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'},
2987    }
2988
2989    def __init__(
2990        self,
2991        **kwargs
2992    ):
2993        super(BackupRequest, self).__init__(**kwargs)
2994        self.backup_name = kwargs.get('backup_name', None)
2995        self.enabled = kwargs.get('enabled', None)
2996        self.storage_account_url = kwargs.get('storage_account_url', None)
2997        self.backup_schedule = kwargs.get('backup_schedule', None)
2998        self.databases = kwargs.get('databases', None)
2999
3000
3001class BackupSchedule(msrest.serialization.Model):
3002    """Description of a backup schedule. Describes how often should be the backup performed and what should be the retention policy.
3003
3004    Variables are only populated by the server, and will be ignored when sending a request.
3005
3006    All required parameters must be populated in order to send to Azure.
3007
3008    :param frequency_interval: Required. How often the backup should be executed (e.g. for weekly
3009     backup, this should be set to 7 and FrequencyUnit should be set to Day).
3010    :type frequency_interval: int
3011    :param frequency_unit: Required. The unit of time for how often the backup should be executed
3012     (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7).
3013     Possible values include: "Day", "Hour". Default value: "Day".
3014    :type frequency_unit: str or ~azure.mgmt.web.v2020_09_01.models.FrequencyUnit
3015    :param keep_at_least_one_backup: Required. True if the retention policy should always keep at
3016     least one backup in the storage account, regardless how old it is; false otherwise.
3017    :type keep_at_least_one_backup: bool
3018    :param retention_period_in_days: Required. After how many days backups should be deleted.
3019    :type retention_period_in_days: int
3020    :param start_time: When the schedule should start working.
3021    :type start_time: ~datetime.datetime
3022    :ivar last_execution_time: Last time when this schedule was triggered.
3023    :vartype last_execution_time: ~datetime.datetime
3024    """
3025
3026    _validation = {
3027        'frequency_interval': {'required': True},
3028        'frequency_unit': {'required': True},
3029        'keep_at_least_one_backup': {'required': True},
3030        'retention_period_in_days': {'required': True},
3031        'last_execution_time': {'readonly': True},
3032    }
3033
3034    _attribute_map = {
3035        'frequency_interval': {'key': 'frequencyInterval', 'type': 'int'},
3036        'frequency_unit': {'key': 'frequencyUnit', 'type': 'str'},
3037        'keep_at_least_one_backup': {'key': 'keepAtLeastOneBackup', 'type': 'bool'},
3038        'retention_period_in_days': {'key': 'retentionPeriodInDays', 'type': 'int'},
3039        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
3040        'last_execution_time': {'key': 'lastExecutionTime', 'type': 'iso-8601'},
3041    }
3042
3043    def __init__(
3044        self,
3045        **kwargs
3046    ):
3047        super(BackupSchedule, self).__init__(**kwargs)
3048        self.frequency_interval = kwargs.get('frequency_interval', 7)
3049        self.frequency_unit = kwargs.get('frequency_unit', "Day")
3050        self.keep_at_least_one_backup = kwargs.get('keep_at_least_one_backup', True)
3051        self.retention_period_in_days = kwargs.get('retention_period_in_days', 30)
3052        self.start_time = kwargs.get('start_time', None)
3053        self.last_execution_time = None
3054
3055
3056class BillingMeter(ProxyOnlyResource):
3057    """App Service billing entity that contains information about meter which the Azure billing system utilizes to charge users for services.
3058
3059    Variables are only populated by the server, and will be ignored when sending a request.
3060
3061    :ivar id: Resource Id.
3062    :vartype id: str
3063    :ivar name: Resource Name.
3064    :vartype name: str
3065    :param kind: Kind of resource.
3066    :type kind: str
3067    :ivar type: Resource type.
3068    :vartype type: str
3069    :ivar system_data: The system metadata relating to this resource.
3070    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3071    :param meter_id: Meter GUID onboarded in Commerce.
3072    :type meter_id: str
3073    :param billing_location: Azure Location of billable resource.
3074    :type billing_location: str
3075    :param short_name: Short Name from App Service Azure pricing Page.
3076    :type short_name: str
3077    :param friendly_name: Friendly name of the meter.
3078    :type friendly_name: str
3079    :param resource_type: App Service ResourceType meter used for.
3080    :type resource_type: str
3081    :param os_type: App Service OS type meter used for.
3082    :type os_type: str
3083    """
3084
3085    _validation = {
3086        'id': {'readonly': True},
3087        'name': {'readonly': True},
3088        'type': {'readonly': True},
3089        'system_data': {'readonly': True},
3090    }
3091
3092    _attribute_map = {
3093        'id': {'key': 'id', 'type': 'str'},
3094        'name': {'key': 'name', 'type': 'str'},
3095        'kind': {'key': 'kind', 'type': 'str'},
3096        'type': {'key': 'type', 'type': 'str'},
3097        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3098        'meter_id': {'key': 'properties.meterId', 'type': 'str'},
3099        'billing_location': {'key': 'properties.billingLocation', 'type': 'str'},
3100        'short_name': {'key': 'properties.shortName', 'type': 'str'},
3101        'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'},
3102        'resource_type': {'key': 'properties.resourceType', 'type': 'str'},
3103        'os_type': {'key': 'properties.osType', 'type': 'str'},
3104    }
3105
3106    def __init__(
3107        self,
3108        **kwargs
3109    ):
3110        super(BillingMeter, self).__init__(**kwargs)
3111        self.meter_id = kwargs.get('meter_id', None)
3112        self.billing_location = kwargs.get('billing_location', None)
3113        self.short_name = kwargs.get('short_name', None)
3114        self.friendly_name = kwargs.get('friendly_name', None)
3115        self.resource_type = kwargs.get('resource_type', None)
3116        self.os_type = kwargs.get('os_type', None)
3117
3118
3119class BillingMeterCollection(msrest.serialization.Model):
3120    """Collection of Billing Meters.
3121
3122    Variables are only populated by the server, and will be ignored when sending a request.
3123
3124    All required parameters must be populated in order to send to Azure.
3125
3126    :param value: Required. Collection of resources.
3127    :type value: list[~azure.mgmt.web.v2020_09_01.models.BillingMeter]
3128    :ivar next_link: Link to next page of resources.
3129    :vartype next_link: str
3130    """
3131
3132    _validation = {
3133        'value': {'required': True},
3134        'next_link': {'readonly': True},
3135    }
3136
3137    _attribute_map = {
3138        'value': {'key': 'value', 'type': '[BillingMeter]'},
3139        'next_link': {'key': 'nextLink', 'type': 'str'},
3140    }
3141
3142    def __init__(
3143        self,
3144        **kwargs
3145    ):
3146        super(BillingMeterCollection, self).__init__(**kwargs)
3147        self.value = kwargs['value']
3148        self.next_link = None
3149
3150
3151class BlobStorageTokenStore(ProxyOnlyResource):
3152    """BlobStorageTokenStore.
3153
3154    Variables are only populated by the server, and will be ignored when sending a request.
3155
3156    :ivar id: Resource Id.
3157    :vartype id: str
3158    :ivar name: Resource Name.
3159    :vartype name: str
3160    :param kind: Kind of resource.
3161    :type kind: str
3162    :ivar type: Resource type.
3163    :vartype type: str
3164    :ivar system_data: The system metadata relating to this resource.
3165    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3166    :param sas_url_setting_name:
3167    :type sas_url_setting_name: str
3168    """
3169
3170    _validation = {
3171        'id': {'readonly': True},
3172        'name': {'readonly': True},
3173        'type': {'readonly': True},
3174        'system_data': {'readonly': True},
3175    }
3176
3177    _attribute_map = {
3178        'id': {'key': 'id', 'type': 'str'},
3179        'name': {'key': 'name', 'type': 'str'},
3180        'kind': {'key': 'kind', 'type': 'str'},
3181        'type': {'key': 'type', 'type': 'str'},
3182        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3183        'sas_url_setting_name': {'key': 'properties.sasUrlSettingName', 'type': 'str'},
3184    }
3185
3186    def __init__(
3187        self,
3188        **kwargs
3189    ):
3190        super(BlobStorageTokenStore, self).__init__(**kwargs)
3191        self.sas_url_setting_name = kwargs.get('sas_url_setting_name', None)
3192
3193
3194class Capability(msrest.serialization.Model):
3195    """Describes the capabilities/features allowed for a specific SKU.
3196
3197    :param name: Name of the SKU capability.
3198    :type name: str
3199    :param value: Value of the SKU capability.
3200    :type value: str
3201    :param reason: Reason of the SKU capability.
3202    :type reason: str
3203    """
3204
3205    _attribute_map = {
3206        'name': {'key': 'name', 'type': 'str'},
3207        'value': {'key': 'value', 'type': 'str'},
3208        'reason': {'key': 'reason', 'type': 'str'},
3209    }
3210
3211    def __init__(
3212        self,
3213        **kwargs
3214    ):
3215        super(Capability, self).__init__(**kwargs)
3216        self.name = kwargs.get('name', None)
3217        self.value = kwargs.get('value', None)
3218        self.reason = kwargs.get('reason', None)
3219
3220
3221class Certificate(Resource):
3222    """SSL certificate for an app.
3223
3224    Variables are only populated by the server, and will be ignored when sending a request.
3225
3226    All required parameters must be populated in order to send to Azure.
3227
3228    :ivar id: Resource Id.
3229    :vartype id: str
3230    :ivar name: Resource Name.
3231    :vartype name: str
3232    :param kind: Kind of resource.
3233    :type kind: str
3234    :param location: Required. Resource Location.
3235    :type location: str
3236    :ivar type: Resource type.
3237    :vartype type: str
3238    :param tags: A set of tags. Resource tags.
3239    :type tags: dict[str, str]
3240    :ivar system_data: The system metadata relating to this resource.
3241    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3242    :ivar friendly_name: Friendly name of the certificate.
3243    :vartype friendly_name: str
3244    :ivar subject_name: Subject name of the certificate.
3245    :vartype subject_name: str
3246    :param host_names: Host names the certificate applies to.
3247    :type host_names: list[str]
3248    :param pfx_blob: Pfx blob.
3249    :type pfx_blob: bytearray
3250    :ivar site_name: App name.
3251    :vartype site_name: str
3252    :ivar self_link: Self link.
3253    :vartype self_link: str
3254    :ivar issuer: Certificate issuer.
3255    :vartype issuer: str
3256    :ivar issue_date: Certificate issue Date.
3257    :vartype issue_date: ~datetime.datetime
3258    :ivar expiration_date: Certificate expiration date.
3259    :vartype expiration_date: ~datetime.datetime
3260    :param password: Certificate password.
3261    :type password: str
3262    :ivar thumbprint: Certificate thumbprint.
3263    :vartype thumbprint: str
3264    :ivar valid: Is the certificate valid?.
3265    :vartype valid: bool
3266    :ivar cer_blob: Raw bytes of .cer file.
3267    :vartype cer_blob: bytearray
3268    :ivar public_key_hash: Public key hash.
3269    :vartype public_key_hash: str
3270    :ivar hosting_environment_profile: Specification for the App Service Environment to use for the
3271     certificate.
3272    :vartype hosting_environment_profile:
3273     ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
3274    :param key_vault_id: Key Vault Csm resource Id.
3275    :type key_vault_id: str
3276    :param key_vault_secret_name: Key Vault secret name.
3277    :type key_vault_secret_name: str
3278    :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include:
3279     "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed",
3280     "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault",
3281     "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey",
3282     "Unknown".
3283    :vartype key_vault_secret_status: str or
3284     ~azure.mgmt.web.v2020_09_01.models.KeyVaultSecretStatus
3285    :param server_farm_id: Resource ID of the associated App Service plan, formatted as:
3286     "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
3287    :type server_farm_id: str
3288    :param canonical_name: CNAME of the certificate to be issued via free certificate.
3289    :type canonical_name: str
3290    """
3291
3292    _validation = {
3293        'id': {'readonly': True},
3294        'name': {'readonly': True},
3295        'location': {'required': True},
3296        'type': {'readonly': True},
3297        'system_data': {'readonly': True},
3298        'friendly_name': {'readonly': True},
3299        'subject_name': {'readonly': True},
3300        'site_name': {'readonly': True},
3301        'self_link': {'readonly': True},
3302        'issuer': {'readonly': True},
3303        'issue_date': {'readonly': True},
3304        'expiration_date': {'readonly': True},
3305        'thumbprint': {'readonly': True},
3306        'valid': {'readonly': True},
3307        'cer_blob': {'readonly': True},
3308        'public_key_hash': {'readonly': True},
3309        'hosting_environment_profile': {'readonly': True},
3310        'key_vault_secret_status': {'readonly': True},
3311    }
3312
3313    _attribute_map = {
3314        'id': {'key': 'id', 'type': 'str'},
3315        'name': {'key': 'name', 'type': 'str'},
3316        'kind': {'key': 'kind', 'type': 'str'},
3317        'location': {'key': 'location', 'type': 'str'},
3318        'type': {'key': 'type', 'type': 'str'},
3319        'tags': {'key': 'tags', 'type': '{str}'},
3320        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3321        'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'},
3322        'subject_name': {'key': 'properties.subjectName', 'type': 'str'},
3323        'host_names': {'key': 'properties.hostNames', 'type': '[str]'},
3324        'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'},
3325        'site_name': {'key': 'properties.siteName', 'type': 'str'},
3326        'self_link': {'key': 'properties.selfLink', 'type': 'str'},
3327        'issuer': {'key': 'properties.issuer', 'type': 'str'},
3328        'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'},
3329        'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'},
3330        'password': {'key': 'properties.password', 'type': 'str'},
3331        'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'},
3332        'valid': {'key': 'properties.valid', 'type': 'bool'},
3333        'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'},
3334        'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'},
3335        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
3336        'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'},
3337        'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'},
3338        'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'},
3339        'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'},
3340        'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'},
3341    }
3342
3343    def __init__(
3344        self,
3345        **kwargs
3346    ):
3347        super(Certificate, self).__init__(**kwargs)
3348        self.friendly_name = None
3349        self.subject_name = None
3350        self.host_names = kwargs.get('host_names', None)
3351        self.pfx_blob = kwargs.get('pfx_blob', None)
3352        self.site_name = None
3353        self.self_link = None
3354        self.issuer = None
3355        self.issue_date = None
3356        self.expiration_date = None
3357        self.password = kwargs.get('password', None)
3358        self.thumbprint = None
3359        self.valid = None
3360        self.cer_blob = None
3361        self.public_key_hash = None
3362        self.hosting_environment_profile = None
3363        self.key_vault_id = kwargs.get('key_vault_id', None)
3364        self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None)
3365        self.key_vault_secret_status = None
3366        self.server_farm_id = kwargs.get('server_farm_id', None)
3367        self.canonical_name = kwargs.get('canonical_name', None)
3368
3369
3370class CertificateCollection(msrest.serialization.Model):
3371    """Collection of certificates.
3372
3373    Variables are only populated by the server, and will be ignored when sending a request.
3374
3375    All required parameters must be populated in order to send to Azure.
3376
3377    :param value: Required. Collection of resources.
3378    :type value: list[~azure.mgmt.web.v2020_09_01.models.Certificate]
3379    :ivar next_link: Link to next page of resources.
3380    :vartype next_link: str
3381    """
3382
3383    _validation = {
3384        'value': {'required': True},
3385        'next_link': {'readonly': True},
3386    }
3387
3388    _attribute_map = {
3389        'value': {'key': 'value', 'type': '[Certificate]'},
3390        'next_link': {'key': 'nextLink', 'type': 'str'},
3391    }
3392
3393    def __init__(
3394        self,
3395        **kwargs
3396    ):
3397        super(CertificateCollection, self).__init__(**kwargs)
3398        self.value = kwargs['value']
3399        self.next_link = None
3400
3401
3402class CertificateDetails(msrest.serialization.Model):
3403    """SSL certificate details.
3404
3405    Variables are only populated by the server, and will be ignored when sending a request.
3406
3407    :ivar version: Certificate Version.
3408    :vartype version: int
3409    :ivar serial_number: Certificate Serial Number.
3410    :vartype serial_number: str
3411    :ivar thumbprint: Certificate Thumbprint.
3412    :vartype thumbprint: str
3413    :ivar subject: Certificate Subject.
3414    :vartype subject: str
3415    :ivar not_before: Date Certificate is valid from.
3416    :vartype not_before: ~datetime.datetime
3417    :ivar not_after: Date Certificate is valid to.
3418    :vartype not_after: ~datetime.datetime
3419    :ivar signature_algorithm: Certificate Signature algorithm.
3420    :vartype signature_algorithm: str
3421    :ivar issuer: Certificate Issuer.
3422    :vartype issuer: str
3423    :ivar raw_data: Raw certificate data.
3424    :vartype raw_data: str
3425    """
3426
3427    _validation = {
3428        'version': {'readonly': True},
3429        'serial_number': {'readonly': True},
3430        'thumbprint': {'readonly': True},
3431        'subject': {'readonly': True},
3432        'not_before': {'readonly': True},
3433        'not_after': {'readonly': True},
3434        'signature_algorithm': {'readonly': True},
3435        'issuer': {'readonly': True},
3436        'raw_data': {'readonly': True},
3437    }
3438
3439    _attribute_map = {
3440        'version': {'key': 'version', 'type': 'int'},
3441        'serial_number': {'key': 'serialNumber', 'type': 'str'},
3442        'thumbprint': {'key': 'thumbprint', 'type': 'str'},
3443        'subject': {'key': 'subject', 'type': 'str'},
3444        'not_before': {'key': 'notBefore', 'type': 'iso-8601'},
3445        'not_after': {'key': 'notAfter', 'type': 'iso-8601'},
3446        'signature_algorithm': {'key': 'signatureAlgorithm', 'type': 'str'},
3447        'issuer': {'key': 'issuer', 'type': 'str'},
3448        'raw_data': {'key': 'rawData', 'type': 'str'},
3449    }
3450
3451    def __init__(
3452        self,
3453        **kwargs
3454    ):
3455        super(CertificateDetails, self).__init__(**kwargs)
3456        self.version = None
3457        self.serial_number = None
3458        self.thumbprint = None
3459        self.subject = None
3460        self.not_before = None
3461        self.not_after = None
3462        self.signature_algorithm = None
3463        self.issuer = None
3464        self.raw_data = None
3465
3466
3467class CertificateEmail(ProxyOnlyResource):
3468    """SSL certificate email.
3469
3470    Variables are only populated by the server, and will be ignored when sending a request.
3471
3472    :ivar id: Resource Id.
3473    :vartype id: str
3474    :ivar name: Resource Name.
3475    :vartype name: str
3476    :param kind: Kind of resource.
3477    :type kind: str
3478    :ivar type: Resource type.
3479    :vartype type: str
3480    :ivar system_data: The system metadata relating to this resource.
3481    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3482    :param email_id: Email id.
3483    :type email_id: str
3484    :param time_stamp: Time stamp.
3485    :type time_stamp: ~datetime.datetime
3486    """
3487
3488    _validation = {
3489        'id': {'readonly': True},
3490        'name': {'readonly': True},
3491        'type': {'readonly': True},
3492        'system_data': {'readonly': True},
3493    }
3494
3495    _attribute_map = {
3496        'id': {'key': 'id', 'type': 'str'},
3497        'name': {'key': 'name', 'type': 'str'},
3498        'kind': {'key': 'kind', 'type': 'str'},
3499        'type': {'key': 'type', 'type': 'str'},
3500        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3501        'email_id': {'key': 'properties.emailId', 'type': 'str'},
3502        'time_stamp': {'key': 'properties.timeStamp', 'type': 'iso-8601'},
3503    }
3504
3505    def __init__(
3506        self,
3507        **kwargs
3508    ):
3509        super(CertificateEmail, self).__init__(**kwargs)
3510        self.email_id = kwargs.get('email_id', None)
3511        self.time_stamp = kwargs.get('time_stamp', None)
3512
3513
3514class CertificateOrderAction(ProxyOnlyResource):
3515    """Certificate order action.
3516
3517    Variables are only populated by the server, and will be ignored when sending a request.
3518
3519    :ivar id: Resource Id.
3520    :vartype id: str
3521    :ivar name: Resource Name.
3522    :vartype name: str
3523    :param kind: Kind of resource.
3524    :type kind: str
3525    :ivar type: Resource type.
3526    :vartype type: str
3527    :ivar system_data: The system metadata relating to this resource.
3528    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3529    :ivar action_type: Action type. Possible values include: "CertificateIssued",
3530     "CertificateOrderCanceled", "CertificateOrderCreated", "CertificateRevoked",
3531     "DomainValidationComplete", "FraudDetected", "OrgNameChange", "OrgValidationComplete",
3532     "SanDrop", "FraudCleared", "CertificateExpired", "CertificateExpirationWarning",
3533     "FraudDocumentationRequired", "Unknown".
3534    :vartype action_type: str or ~azure.mgmt.web.v2020_09_01.models.CertificateOrderActionType
3535    :ivar created_at: Time at which the certificate action was performed.
3536    :vartype created_at: ~datetime.datetime
3537    """
3538
3539    _validation = {
3540        'id': {'readonly': True},
3541        'name': {'readonly': True},
3542        'type': {'readonly': True},
3543        'system_data': {'readonly': True},
3544        'action_type': {'readonly': True},
3545        'created_at': {'readonly': True},
3546    }
3547
3548    _attribute_map = {
3549        'id': {'key': 'id', 'type': 'str'},
3550        'name': {'key': 'name', 'type': 'str'},
3551        'kind': {'key': 'kind', 'type': 'str'},
3552        'type': {'key': 'type', 'type': 'str'},
3553        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3554        'action_type': {'key': 'properties.actionType', 'type': 'str'},
3555        'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'},
3556    }
3557
3558    def __init__(
3559        self,
3560        **kwargs
3561    ):
3562        super(CertificateOrderAction, self).__init__(**kwargs)
3563        self.action_type = None
3564        self.created_at = None
3565
3566
3567class CertificatePatchResource(ProxyOnlyResource):
3568    """ARM resource for a certificate.
3569
3570    Variables are only populated by the server, and will be ignored when sending a request.
3571
3572    :ivar id: Resource Id.
3573    :vartype id: str
3574    :ivar name: Resource Name.
3575    :vartype name: str
3576    :param kind: Kind of resource.
3577    :type kind: str
3578    :ivar type: Resource type.
3579    :vartype type: str
3580    :ivar system_data: The system metadata relating to this resource.
3581    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3582    :ivar friendly_name: Friendly name of the certificate.
3583    :vartype friendly_name: str
3584    :ivar subject_name: Subject name of the certificate.
3585    :vartype subject_name: str
3586    :param host_names: Host names the certificate applies to.
3587    :type host_names: list[str]
3588    :param pfx_blob: Pfx blob.
3589    :type pfx_blob: bytearray
3590    :ivar site_name: App name.
3591    :vartype site_name: str
3592    :ivar self_link: Self link.
3593    :vartype self_link: str
3594    :ivar issuer: Certificate issuer.
3595    :vartype issuer: str
3596    :ivar issue_date: Certificate issue Date.
3597    :vartype issue_date: ~datetime.datetime
3598    :ivar expiration_date: Certificate expiration date.
3599    :vartype expiration_date: ~datetime.datetime
3600    :param password: Certificate password.
3601    :type password: str
3602    :ivar thumbprint: Certificate thumbprint.
3603    :vartype thumbprint: str
3604    :ivar valid: Is the certificate valid?.
3605    :vartype valid: bool
3606    :ivar cer_blob: Raw bytes of .cer file.
3607    :vartype cer_blob: bytearray
3608    :ivar public_key_hash: Public key hash.
3609    :vartype public_key_hash: str
3610    :ivar hosting_environment_profile: Specification for the App Service Environment to use for the
3611     certificate.
3612    :vartype hosting_environment_profile:
3613     ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
3614    :param key_vault_id: Key Vault Csm resource Id.
3615    :type key_vault_id: str
3616    :param key_vault_secret_name: Key Vault secret name.
3617    :type key_vault_secret_name: str
3618    :ivar key_vault_secret_status: Status of the Key Vault secret. Possible values include:
3619     "Initialized", "WaitingOnCertificateOrder", "Succeeded", "CertificateOrderFailed",
3620     "OperationNotPermittedOnKeyVault", "AzureServiceUnauthorizedToAccessKeyVault",
3621     "KeyVaultDoesNotExist", "KeyVaultSecretDoesNotExist", "UnknownError", "ExternalPrivateKey",
3622     "Unknown".
3623    :vartype key_vault_secret_status: str or
3624     ~azure.mgmt.web.v2020_09_01.models.KeyVaultSecretStatus
3625    :param server_farm_id: Resource ID of the associated App Service plan, formatted as:
3626     "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
3627    :type server_farm_id: str
3628    :param canonical_name: CNAME of the certificate to be issued via free certificate.
3629    :type canonical_name: str
3630    """
3631
3632    _validation = {
3633        'id': {'readonly': True},
3634        'name': {'readonly': True},
3635        'type': {'readonly': True},
3636        'system_data': {'readonly': True},
3637        'friendly_name': {'readonly': True},
3638        'subject_name': {'readonly': True},
3639        'site_name': {'readonly': True},
3640        'self_link': {'readonly': True},
3641        'issuer': {'readonly': True},
3642        'issue_date': {'readonly': True},
3643        'expiration_date': {'readonly': True},
3644        'thumbprint': {'readonly': True},
3645        'valid': {'readonly': True},
3646        'cer_blob': {'readonly': True},
3647        'public_key_hash': {'readonly': True},
3648        'hosting_environment_profile': {'readonly': True},
3649        'key_vault_secret_status': {'readonly': True},
3650    }
3651
3652    _attribute_map = {
3653        'id': {'key': 'id', 'type': 'str'},
3654        'name': {'key': 'name', 'type': 'str'},
3655        'kind': {'key': 'kind', 'type': 'str'},
3656        'type': {'key': 'type', 'type': 'str'},
3657        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3658        'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'},
3659        'subject_name': {'key': 'properties.subjectName', 'type': 'str'},
3660        'host_names': {'key': 'properties.hostNames', 'type': '[str]'},
3661        'pfx_blob': {'key': 'properties.pfxBlob', 'type': 'bytearray'},
3662        'site_name': {'key': 'properties.siteName', 'type': 'str'},
3663        'self_link': {'key': 'properties.selfLink', 'type': 'str'},
3664        'issuer': {'key': 'properties.issuer', 'type': 'str'},
3665        'issue_date': {'key': 'properties.issueDate', 'type': 'iso-8601'},
3666        'expiration_date': {'key': 'properties.expirationDate', 'type': 'iso-8601'},
3667        'password': {'key': 'properties.password', 'type': 'str'},
3668        'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'},
3669        'valid': {'key': 'properties.valid', 'type': 'bool'},
3670        'cer_blob': {'key': 'properties.cerBlob', 'type': 'bytearray'},
3671        'public_key_hash': {'key': 'properties.publicKeyHash', 'type': 'str'},
3672        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
3673        'key_vault_id': {'key': 'properties.keyVaultId', 'type': 'str'},
3674        'key_vault_secret_name': {'key': 'properties.keyVaultSecretName', 'type': 'str'},
3675        'key_vault_secret_status': {'key': 'properties.keyVaultSecretStatus', 'type': 'str'},
3676        'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'},
3677        'canonical_name': {'key': 'properties.canonicalName', 'type': 'str'},
3678    }
3679
3680    def __init__(
3681        self,
3682        **kwargs
3683    ):
3684        super(CertificatePatchResource, self).__init__(**kwargs)
3685        self.friendly_name = None
3686        self.subject_name = None
3687        self.host_names = kwargs.get('host_names', None)
3688        self.pfx_blob = kwargs.get('pfx_blob', None)
3689        self.site_name = None
3690        self.self_link = None
3691        self.issuer = None
3692        self.issue_date = None
3693        self.expiration_date = None
3694        self.password = kwargs.get('password', None)
3695        self.thumbprint = None
3696        self.valid = None
3697        self.cer_blob = None
3698        self.public_key_hash = None
3699        self.hosting_environment_profile = None
3700        self.key_vault_id = kwargs.get('key_vault_id', None)
3701        self.key_vault_secret_name = kwargs.get('key_vault_secret_name', None)
3702        self.key_vault_secret_status = None
3703        self.server_farm_id = kwargs.get('server_farm_id', None)
3704        self.canonical_name = kwargs.get('canonical_name', None)
3705
3706
3707class ClientRegistration(ProxyOnlyResource):
3708    """ClientRegistration.
3709
3710    Variables are only populated by the server, and will be ignored when sending a request.
3711
3712    :ivar id: Resource Id.
3713    :vartype id: str
3714    :ivar name: Resource Name.
3715    :vartype name: str
3716    :param kind: Kind of resource.
3717    :type kind: str
3718    :ivar type: Resource type.
3719    :vartype type: str
3720    :ivar system_data: The system metadata relating to this resource.
3721    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3722    :param client_id:
3723    :type client_id: str
3724    :param client_secret_setting_name:
3725    :type client_secret_setting_name: str
3726    """
3727
3728    _validation = {
3729        'id': {'readonly': True},
3730        'name': {'readonly': True},
3731        'type': {'readonly': True},
3732        'system_data': {'readonly': True},
3733    }
3734
3735    _attribute_map = {
3736        'id': {'key': 'id', 'type': 'str'},
3737        'name': {'key': 'name', 'type': 'str'},
3738        'kind': {'key': 'kind', 'type': 'str'},
3739        'type': {'key': 'type', 'type': 'str'},
3740        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3741        'client_id': {'key': 'properties.clientId', 'type': 'str'},
3742        'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'},
3743    }
3744
3745    def __init__(
3746        self,
3747        **kwargs
3748    ):
3749        super(ClientRegistration, self).__init__(**kwargs)
3750        self.client_id = kwargs.get('client_id', None)
3751        self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None)
3752
3753
3754class CloningInfo(msrest.serialization.Model):
3755    """Information needed for cloning operation.
3756
3757    All required parameters must be populated in order to send to Azure.
3758
3759    :param correlation_id: Correlation ID of cloning operation. This ID ties multiple cloning
3760     operations
3761     together to use the same snapshot.
3762    :type correlation_id: str
3763    :param overwrite: :code:`<code>true</code>` to overwrite destination app; otherwise,
3764     :code:`<code>false</code>`.
3765    :type overwrite: bool
3766    :param clone_custom_host_names: :code:`<code>true</code>` to clone custom hostnames from source
3767     app; otherwise, :code:`<code>false</code>`.
3768    :type clone_custom_host_names: bool
3769    :param clone_source_control: :code:`<code>true</code>` to clone source control from source app;
3770     otherwise, :code:`<code>false</code>`.
3771    :type clone_source_control: bool
3772    :param source_web_app_id: Required. ARM resource ID of the source app. App resource ID is of
3773     the form
3774    /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}
3775     for production slots and
3776    /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName}
3777     for other slots.
3778    :type source_web_app_id: str
3779    :param source_web_app_location: Location of source app ex: West US or North Europe.
3780    :type source_web_app_location: str
3781    :param hosting_environment: App Service Environment.
3782    :type hosting_environment: str
3783    :param app_settings_overrides: Application setting overrides for cloned app. If specified,
3784     these settings override the settings cloned
3785     from source app. Otherwise, application settings from source app are retained.
3786    :type app_settings_overrides: dict[str, str]
3787    :param configure_load_balancing: :code:`<code>true</code>` to configure load balancing for
3788     source and destination app.
3789    :type configure_load_balancing: bool
3790    :param traffic_manager_profile_id: ARM resource ID of the Traffic Manager profile to use, if it
3791     exists. Traffic Manager resource ID is of the form
3792    /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.
3793    :type traffic_manager_profile_id: str
3794    :param traffic_manager_profile_name: Name of Traffic Manager profile to create. This is only
3795     needed if Traffic Manager profile does not already exist.
3796    :type traffic_manager_profile_name: str
3797    """
3798
3799    _validation = {
3800        'source_web_app_id': {'required': True},
3801    }
3802
3803    _attribute_map = {
3804        'correlation_id': {'key': 'correlationId', 'type': 'str'},
3805        'overwrite': {'key': 'overwrite', 'type': 'bool'},
3806        'clone_custom_host_names': {'key': 'cloneCustomHostNames', 'type': 'bool'},
3807        'clone_source_control': {'key': 'cloneSourceControl', 'type': 'bool'},
3808        'source_web_app_id': {'key': 'sourceWebAppId', 'type': 'str'},
3809        'source_web_app_location': {'key': 'sourceWebAppLocation', 'type': 'str'},
3810        'hosting_environment': {'key': 'hostingEnvironment', 'type': 'str'},
3811        'app_settings_overrides': {'key': 'appSettingsOverrides', 'type': '{str}'},
3812        'configure_load_balancing': {'key': 'configureLoadBalancing', 'type': 'bool'},
3813        'traffic_manager_profile_id': {'key': 'trafficManagerProfileId', 'type': 'str'},
3814        'traffic_manager_profile_name': {'key': 'trafficManagerProfileName', 'type': 'str'},
3815    }
3816
3817    def __init__(
3818        self,
3819        **kwargs
3820    ):
3821        super(CloningInfo, self).__init__(**kwargs)
3822        self.correlation_id = kwargs.get('correlation_id', None)
3823        self.overwrite = kwargs.get('overwrite', None)
3824        self.clone_custom_host_names = kwargs.get('clone_custom_host_names', None)
3825        self.clone_source_control = kwargs.get('clone_source_control', None)
3826        self.source_web_app_id = kwargs['source_web_app_id']
3827        self.source_web_app_location = kwargs.get('source_web_app_location', None)
3828        self.hosting_environment = kwargs.get('hosting_environment', None)
3829        self.app_settings_overrides = kwargs.get('app_settings_overrides', None)
3830        self.configure_load_balancing = kwargs.get('configure_load_balancing', None)
3831        self.traffic_manager_profile_id = kwargs.get('traffic_manager_profile_id', None)
3832        self.traffic_manager_profile_name = kwargs.get('traffic_manager_profile_name', None)
3833
3834
3835class Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties(msrest.serialization.Model):
3836    """Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties.
3837
3838    Variables are only populated by the server, and will be ignored when sending a request.
3839
3840    :ivar principal_id: Principal Id of user assigned identity.
3841    :vartype principal_id: str
3842    :ivar client_id: Client Id of user assigned identity.
3843    :vartype client_id: str
3844    """
3845
3846    _validation = {
3847        'principal_id': {'readonly': True},
3848        'client_id': {'readonly': True},
3849    }
3850
3851    _attribute_map = {
3852        'principal_id': {'key': 'principalId', 'type': 'str'},
3853        'client_id': {'key': 'clientId', 'type': 'str'},
3854    }
3855
3856    def __init__(
3857        self,
3858        **kwargs
3859    ):
3860        super(Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties, self).__init__(**kwargs)
3861        self.principal_id = None
3862        self.client_id = None
3863
3864
3865class ConnectionStringDictionary(ProxyOnlyResource):
3866    """String dictionary resource.
3867
3868    Variables are only populated by the server, and will be ignored when sending a request.
3869
3870    :ivar id: Resource Id.
3871    :vartype id: str
3872    :ivar name: Resource Name.
3873    :vartype name: str
3874    :param kind: Kind of resource.
3875    :type kind: str
3876    :ivar type: Resource type.
3877    :vartype type: str
3878    :ivar system_data: The system metadata relating to this resource.
3879    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
3880    :param properties: Connection strings.
3881    :type properties: dict[str, ~azure.mgmt.web.v2020_09_01.models.ConnStringValueTypePair]
3882    """
3883
3884    _validation = {
3885        'id': {'readonly': True},
3886        'name': {'readonly': True},
3887        'type': {'readonly': True},
3888        'system_data': {'readonly': True},
3889    }
3890
3891    _attribute_map = {
3892        'id': {'key': 'id', 'type': 'str'},
3893        'name': {'key': 'name', 'type': 'str'},
3894        'kind': {'key': 'kind', 'type': 'str'},
3895        'type': {'key': 'type', 'type': 'str'},
3896        'system_data': {'key': 'systemData', 'type': 'SystemData'},
3897        'properties': {'key': 'properties', 'type': '{ConnStringValueTypePair}'},
3898    }
3899
3900    def __init__(
3901        self,
3902        **kwargs
3903    ):
3904        super(ConnectionStringDictionary, self).__init__(**kwargs)
3905        self.properties = kwargs.get('properties', None)
3906
3907
3908class ConnStringInfo(msrest.serialization.Model):
3909    """Database connection string information.
3910
3911    :param name: Name of connection string.
3912    :type name: str
3913    :param connection_string: Connection string value.
3914    :type connection_string: str
3915    :param type: Type of database. Possible values include: "MySql", "SQLServer", "SQLAzure",
3916     "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb", "RedisCache",
3917     "PostgreSQL".
3918    :type type: str or ~azure.mgmt.web.v2020_09_01.models.ConnectionStringType
3919    """
3920
3921    _attribute_map = {
3922        'name': {'key': 'name', 'type': 'str'},
3923        'connection_string': {'key': 'connectionString', 'type': 'str'},
3924        'type': {'key': 'type', 'type': 'str'},
3925    }
3926
3927    def __init__(
3928        self,
3929        **kwargs
3930    ):
3931        super(ConnStringInfo, self).__init__(**kwargs)
3932        self.name = kwargs.get('name', None)
3933        self.connection_string = kwargs.get('connection_string', None)
3934        self.type = kwargs.get('type', None)
3935
3936
3937class ConnStringValueTypePair(msrest.serialization.Model):
3938    """Database connection string value to type pair.
3939
3940    All required parameters must be populated in order to send to Azure.
3941
3942    :param value: Required. Value of pair.
3943    :type value: str
3944    :param type: Required. Type of database. Possible values include: "MySql", "SQLServer",
3945     "SQLAzure", "Custom", "NotificationHub", "ServiceBus", "EventHub", "ApiHub", "DocDb",
3946     "RedisCache", "PostgreSQL".
3947    :type type: str or ~azure.mgmt.web.v2020_09_01.models.ConnectionStringType
3948    """
3949
3950    _validation = {
3951        'value': {'required': True},
3952        'type': {'required': True},
3953    }
3954
3955    _attribute_map = {
3956        'value': {'key': 'value', 'type': 'str'},
3957        'type': {'key': 'type', 'type': 'str'},
3958    }
3959
3960    def __init__(
3961        self,
3962        **kwargs
3963    ):
3964        super(ConnStringValueTypePair, self).__init__(**kwargs)
3965        self.value = kwargs['value']
3966        self.type = kwargs['type']
3967
3968
3969class Contact(msrest.serialization.Model):
3970    """Contact information for domain registration. If 'Domain Privacy' option is not selected then the contact information is made publicly available through the Whois
3971directories as per ICANN requirements.
3972
3973    All required parameters must be populated in order to send to Azure.
3974
3975    :param address_mailing: Mailing address.
3976    :type address_mailing: ~azure.mgmt.web.v2020_09_01.models.Address
3977    :param email: Required. Email address.
3978    :type email: str
3979    :param fax: Fax number.
3980    :type fax: str
3981    :param job_title: Job title.
3982    :type job_title: str
3983    :param name_first: Required. First name.
3984    :type name_first: str
3985    :param name_last: Required. Last name.
3986    :type name_last: str
3987    :param name_middle: Middle name.
3988    :type name_middle: str
3989    :param organization: Organization contact belongs to.
3990    :type organization: str
3991    :param phone: Required. Phone number.
3992    :type phone: str
3993    """
3994
3995    _validation = {
3996        'email': {'required': True},
3997        'name_first': {'required': True},
3998        'name_last': {'required': True},
3999        'phone': {'required': True},
4000    }
4001
4002    _attribute_map = {
4003        'address_mailing': {'key': 'addressMailing', 'type': 'Address'},
4004        'email': {'key': 'email', 'type': 'str'},
4005        'fax': {'key': 'fax', 'type': 'str'},
4006        'job_title': {'key': 'jobTitle', 'type': 'str'},
4007        'name_first': {'key': 'nameFirst', 'type': 'str'},
4008        'name_last': {'key': 'nameLast', 'type': 'str'},
4009        'name_middle': {'key': 'nameMiddle', 'type': 'str'},
4010        'organization': {'key': 'organization', 'type': 'str'},
4011        'phone': {'key': 'phone', 'type': 'str'},
4012    }
4013
4014    def __init__(
4015        self,
4016        **kwargs
4017    ):
4018        super(Contact, self).__init__(**kwargs)
4019        self.address_mailing = kwargs.get('address_mailing', None)
4020        self.email = kwargs['email']
4021        self.fax = kwargs.get('fax', None)
4022        self.job_title = kwargs.get('job_title', None)
4023        self.name_first = kwargs['name_first']
4024        self.name_last = kwargs['name_last']
4025        self.name_middle = kwargs.get('name_middle', None)
4026        self.organization = kwargs.get('organization', None)
4027        self.phone = kwargs['phone']
4028
4029
4030class ContainerCpuStatistics(msrest.serialization.Model):
4031    """ContainerCpuStatistics.
4032
4033    :param cpu_usage:
4034    :type cpu_usage: ~azure.mgmt.web.v2020_09_01.models.ContainerCpuUsage
4035    :param system_cpu_usage:
4036    :type system_cpu_usage: long
4037    :param online_cpu_count:
4038    :type online_cpu_count: int
4039    :param throttling_data:
4040    :type throttling_data: ~azure.mgmt.web.v2020_09_01.models.ContainerThrottlingData
4041    """
4042
4043    _attribute_map = {
4044        'cpu_usage': {'key': 'cpuUsage', 'type': 'ContainerCpuUsage'},
4045        'system_cpu_usage': {'key': 'systemCpuUsage', 'type': 'long'},
4046        'online_cpu_count': {'key': 'onlineCpuCount', 'type': 'int'},
4047        'throttling_data': {'key': 'throttlingData', 'type': 'ContainerThrottlingData'},
4048    }
4049
4050    def __init__(
4051        self,
4052        **kwargs
4053    ):
4054        super(ContainerCpuStatistics, self).__init__(**kwargs)
4055        self.cpu_usage = kwargs.get('cpu_usage', None)
4056        self.system_cpu_usage = kwargs.get('system_cpu_usage', None)
4057        self.online_cpu_count = kwargs.get('online_cpu_count', None)
4058        self.throttling_data = kwargs.get('throttling_data', None)
4059
4060
4061class ContainerCpuUsage(msrest.serialization.Model):
4062    """ContainerCpuUsage.
4063
4064    :param total_usage:
4065    :type total_usage: long
4066    :param per_cpu_usage:
4067    :type per_cpu_usage: list[long]
4068    :param kernel_mode_usage:
4069    :type kernel_mode_usage: long
4070    :param user_mode_usage:
4071    :type user_mode_usage: long
4072    """
4073
4074    _attribute_map = {
4075        'total_usage': {'key': 'totalUsage', 'type': 'long'},
4076        'per_cpu_usage': {'key': 'perCpuUsage', 'type': '[long]'},
4077        'kernel_mode_usage': {'key': 'kernelModeUsage', 'type': 'long'},
4078        'user_mode_usage': {'key': 'userModeUsage', 'type': 'long'},
4079    }
4080
4081    def __init__(
4082        self,
4083        **kwargs
4084    ):
4085        super(ContainerCpuUsage, self).__init__(**kwargs)
4086        self.total_usage = kwargs.get('total_usage', None)
4087        self.per_cpu_usage = kwargs.get('per_cpu_usage', None)
4088        self.kernel_mode_usage = kwargs.get('kernel_mode_usage', None)
4089        self.user_mode_usage = kwargs.get('user_mode_usage', None)
4090
4091
4092class ContainerInfo(msrest.serialization.Model):
4093    """ContainerInfo.
4094
4095    :param current_time_stamp:
4096    :type current_time_stamp: ~datetime.datetime
4097    :param previous_time_stamp:
4098    :type previous_time_stamp: ~datetime.datetime
4099    :param current_cpu_stats:
4100    :type current_cpu_stats: ~azure.mgmt.web.v2020_09_01.models.ContainerCpuStatistics
4101    :param previous_cpu_stats:
4102    :type previous_cpu_stats: ~azure.mgmt.web.v2020_09_01.models.ContainerCpuStatistics
4103    :param memory_stats:
4104    :type memory_stats: ~azure.mgmt.web.v2020_09_01.models.ContainerMemoryStatistics
4105    :param name:
4106    :type name: str
4107    :param id:
4108    :type id: str
4109    :param eth0:
4110    :type eth0: ~azure.mgmt.web.v2020_09_01.models.ContainerNetworkInterfaceStatistics
4111    """
4112
4113    _attribute_map = {
4114        'current_time_stamp': {'key': 'currentTimeStamp', 'type': 'iso-8601'},
4115        'previous_time_stamp': {'key': 'previousTimeStamp', 'type': 'iso-8601'},
4116        'current_cpu_stats': {'key': 'currentCpuStats', 'type': 'ContainerCpuStatistics'},
4117        'previous_cpu_stats': {'key': 'previousCpuStats', 'type': 'ContainerCpuStatistics'},
4118        'memory_stats': {'key': 'memoryStats', 'type': 'ContainerMemoryStatistics'},
4119        'name': {'key': 'name', 'type': 'str'},
4120        'id': {'key': 'id', 'type': 'str'},
4121        'eth0': {'key': 'eth0', 'type': 'ContainerNetworkInterfaceStatistics'},
4122    }
4123
4124    def __init__(
4125        self,
4126        **kwargs
4127    ):
4128        super(ContainerInfo, self).__init__(**kwargs)
4129        self.current_time_stamp = kwargs.get('current_time_stamp', None)
4130        self.previous_time_stamp = kwargs.get('previous_time_stamp', None)
4131        self.current_cpu_stats = kwargs.get('current_cpu_stats', None)
4132        self.previous_cpu_stats = kwargs.get('previous_cpu_stats', None)
4133        self.memory_stats = kwargs.get('memory_stats', None)
4134        self.name = kwargs.get('name', None)
4135        self.id = kwargs.get('id', None)
4136        self.eth0 = kwargs.get('eth0', None)
4137
4138
4139class ContainerMemoryStatistics(msrest.serialization.Model):
4140    """ContainerMemoryStatistics.
4141
4142    :param usage:
4143    :type usage: long
4144    :param max_usage:
4145    :type max_usage: long
4146    :param limit:
4147    :type limit: long
4148    """
4149
4150    _attribute_map = {
4151        'usage': {'key': 'usage', 'type': 'long'},
4152        'max_usage': {'key': 'maxUsage', 'type': 'long'},
4153        'limit': {'key': 'limit', 'type': 'long'},
4154    }
4155
4156    def __init__(
4157        self,
4158        **kwargs
4159    ):
4160        super(ContainerMemoryStatistics, self).__init__(**kwargs)
4161        self.usage = kwargs.get('usage', None)
4162        self.max_usage = kwargs.get('max_usage', None)
4163        self.limit = kwargs.get('limit', None)
4164
4165
4166class ContainerNetworkInterfaceStatistics(msrest.serialization.Model):
4167    """ContainerNetworkInterfaceStatistics.
4168
4169    :param rx_bytes:
4170    :type rx_bytes: long
4171    :param rx_packets:
4172    :type rx_packets: long
4173    :param rx_errors:
4174    :type rx_errors: long
4175    :param rx_dropped:
4176    :type rx_dropped: long
4177    :param tx_bytes:
4178    :type tx_bytes: long
4179    :param tx_packets:
4180    :type tx_packets: long
4181    :param tx_errors:
4182    :type tx_errors: long
4183    :param tx_dropped:
4184    :type tx_dropped: long
4185    """
4186
4187    _attribute_map = {
4188        'rx_bytes': {'key': 'rxBytes', 'type': 'long'},
4189        'rx_packets': {'key': 'rxPackets', 'type': 'long'},
4190        'rx_errors': {'key': 'rxErrors', 'type': 'long'},
4191        'rx_dropped': {'key': 'rxDropped', 'type': 'long'},
4192        'tx_bytes': {'key': 'txBytes', 'type': 'long'},
4193        'tx_packets': {'key': 'txPackets', 'type': 'long'},
4194        'tx_errors': {'key': 'txErrors', 'type': 'long'},
4195        'tx_dropped': {'key': 'txDropped', 'type': 'long'},
4196    }
4197
4198    def __init__(
4199        self,
4200        **kwargs
4201    ):
4202        super(ContainerNetworkInterfaceStatistics, self).__init__(**kwargs)
4203        self.rx_bytes = kwargs.get('rx_bytes', None)
4204        self.rx_packets = kwargs.get('rx_packets', None)
4205        self.rx_errors = kwargs.get('rx_errors', None)
4206        self.rx_dropped = kwargs.get('rx_dropped', None)
4207        self.tx_bytes = kwargs.get('tx_bytes', None)
4208        self.tx_packets = kwargs.get('tx_packets', None)
4209        self.tx_errors = kwargs.get('tx_errors', None)
4210        self.tx_dropped = kwargs.get('tx_dropped', None)
4211
4212
4213class ContainerThrottlingData(msrest.serialization.Model):
4214    """ContainerThrottlingData.
4215
4216    :param periods:
4217    :type periods: int
4218    :param throttled_periods:
4219    :type throttled_periods: int
4220    :param throttled_time:
4221    :type throttled_time: int
4222    """
4223
4224    _attribute_map = {
4225        'periods': {'key': 'periods', 'type': 'int'},
4226        'throttled_periods': {'key': 'throttledPeriods', 'type': 'int'},
4227        'throttled_time': {'key': 'throttledTime', 'type': 'int'},
4228    }
4229
4230    def __init__(
4231        self,
4232        **kwargs
4233    ):
4234        super(ContainerThrottlingData, self).__init__(**kwargs)
4235        self.periods = kwargs.get('periods', None)
4236        self.throttled_periods = kwargs.get('throttled_periods', None)
4237        self.throttled_time = kwargs.get('throttled_time', None)
4238
4239
4240class ContinuousWebJob(ProxyOnlyResource):
4241    """Continuous Web Job Information.
4242
4243    Variables are only populated by the server, and will be ignored when sending a request.
4244
4245    :ivar id: Resource Id.
4246    :vartype id: str
4247    :ivar name: Resource Name.
4248    :vartype name: str
4249    :param kind: Kind of resource.
4250    :type kind: str
4251    :ivar type: Resource type.
4252    :vartype type: str
4253    :ivar system_data: The system metadata relating to this resource.
4254    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4255    :param status: Job status. Possible values include: "Initializing", "Starting", "Running",
4256     "PendingRestart", "Stopped".
4257    :type status: str or ~azure.mgmt.web.v2020_09_01.models.ContinuousWebJobStatus
4258    :param detailed_status: Detailed status.
4259    :type detailed_status: str
4260    :param log_url: Log URL.
4261    :type log_url: str
4262    :param run_command: Run command.
4263    :type run_command: str
4264    :param url: Job URL.
4265    :type url: str
4266    :param extra_info_url: Extra Info URL.
4267    :type extra_info_url: str
4268    :param web_job_type: Job type. Possible values include: "Continuous", "Triggered".
4269    :type web_job_type: str or ~azure.mgmt.web.v2020_09_01.models.WebJobType
4270    :param error: Error information.
4271    :type error: str
4272    :param using_sdk: Using SDK?.
4273    :type using_sdk: bool
4274    :param settings: Job settings.
4275    :type settings: dict[str, any]
4276    """
4277
4278    _validation = {
4279        'id': {'readonly': True},
4280        'name': {'readonly': True},
4281        'type': {'readonly': True},
4282        'system_data': {'readonly': True},
4283    }
4284
4285    _attribute_map = {
4286        'id': {'key': 'id', 'type': 'str'},
4287        'name': {'key': 'name', 'type': 'str'},
4288        'kind': {'key': 'kind', 'type': 'str'},
4289        'type': {'key': 'type', 'type': 'str'},
4290        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4291        'status': {'key': 'properties.status', 'type': 'str'},
4292        'detailed_status': {'key': 'properties.detailed_status', 'type': 'str'},
4293        'log_url': {'key': 'properties.log_url', 'type': 'str'},
4294        'run_command': {'key': 'properties.run_command', 'type': 'str'},
4295        'url': {'key': 'properties.url', 'type': 'str'},
4296        'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'},
4297        'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'},
4298        'error': {'key': 'properties.error', 'type': 'str'},
4299        'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'},
4300        'settings': {'key': 'properties.settings', 'type': '{object}'},
4301    }
4302
4303    def __init__(
4304        self,
4305        **kwargs
4306    ):
4307        super(ContinuousWebJob, self).__init__(**kwargs)
4308        self.status = kwargs.get('status', None)
4309        self.detailed_status = kwargs.get('detailed_status', None)
4310        self.log_url = kwargs.get('log_url', None)
4311        self.run_command = kwargs.get('run_command', None)
4312        self.url = kwargs.get('url', None)
4313        self.extra_info_url = kwargs.get('extra_info_url', None)
4314        self.web_job_type = kwargs.get('web_job_type', None)
4315        self.error = kwargs.get('error', None)
4316        self.using_sdk = kwargs.get('using_sdk', None)
4317        self.settings = kwargs.get('settings', None)
4318
4319
4320class ContinuousWebJobCollection(msrest.serialization.Model):
4321    """Collection of Kudu continuous web job information elements.
4322
4323    Variables are only populated by the server, and will be ignored when sending a request.
4324
4325    All required parameters must be populated in order to send to Azure.
4326
4327    :param value: Required. Collection of resources.
4328    :type value: list[~azure.mgmt.web.v2020_09_01.models.ContinuousWebJob]
4329    :ivar next_link: Link to next page of resources.
4330    :vartype next_link: str
4331    """
4332
4333    _validation = {
4334        'value': {'required': True},
4335        'next_link': {'readonly': True},
4336    }
4337
4338    _attribute_map = {
4339        'value': {'key': 'value', 'type': '[ContinuousWebJob]'},
4340        'next_link': {'key': 'nextLink', 'type': 'str'},
4341    }
4342
4343    def __init__(
4344        self,
4345        **kwargs
4346    ):
4347        super(ContinuousWebJobCollection, self).__init__(**kwargs)
4348        self.value = kwargs['value']
4349        self.next_link = None
4350
4351
4352class CookieExpiration(ProxyOnlyResource):
4353    """CookieExpiration.
4354
4355    Variables are only populated by the server, and will be ignored when sending a request.
4356
4357    :ivar id: Resource Id.
4358    :vartype id: str
4359    :ivar name: Resource Name.
4360    :vartype name: str
4361    :param kind: Kind of resource.
4362    :type kind: str
4363    :ivar type: Resource type.
4364    :vartype type: str
4365    :ivar system_data: The system metadata relating to this resource.
4366    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4367    :param convention:  Possible values include: "FixedTime", "IdentityProviderDerived".
4368    :type convention: str or ~azure.mgmt.web.v2020_09_01.models.CookieExpirationConvention
4369    :param time_to_expiration:
4370    :type time_to_expiration: str
4371    """
4372
4373    _validation = {
4374        'id': {'readonly': True},
4375        'name': {'readonly': True},
4376        'type': {'readonly': True},
4377        'system_data': {'readonly': True},
4378    }
4379
4380    _attribute_map = {
4381        'id': {'key': 'id', 'type': 'str'},
4382        'name': {'key': 'name', 'type': 'str'},
4383        'kind': {'key': 'kind', 'type': 'str'},
4384        'type': {'key': 'type', 'type': 'str'},
4385        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4386        'convention': {'key': 'properties.convention', 'type': 'str'},
4387        'time_to_expiration': {'key': 'properties.timeToExpiration', 'type': 'str'},
4388    }
4389
4390    def __init__(
4391        self,
4392        **kwargs
4393    ):
4394        super(CookieExpiration, self).__init__(**kwargs)
4395        self.convention = kwargs.get('convention', None)
4396        self.time_to_expiration = kwargs.get('time_to_expiration', None)
4397
4398
4399class CorsSettings(msrest.serialization.Model):
4400    """Cross-Origin Resource Sharing (CORS) settings for the app.
4401
4402    :param allowed_origins: Gets or sets the list of origins that should be allowed to make
4403     cross-origin
4404     calls (for example: http://example.com:12345). Use "*" to allow all.
4405    :type allowed_origins: list[str]
4406    :param support_credentials: Gets or sets whether CORS requests with credentials are allowed.
4407     See
4408     https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials
4409     for more details.
4410    :type support_credentials: bool
4411    """
4412
4413    _attribute_map = {
4414        'allowed_origins': {'key': 'allowedOrigins', 'type': '[str]'},
4415        'support_credentials': {'key': 'supportCredentials', 'type': 'bool'},
4416    }
4417
4418    def __init__(
4419        self,
4420        **kwargs
4421    ):
4422        super(CorsSettings, self).__init__(**kwargs)
4423        self.allowed_origins = kwargs.get('allowed_origins', None)
4424        self.support_credentials = kwargs.get('support_credentials', None)
4425
4426
4427class CsmCopySlotEntity(msrest.serialization.Model):
4428    """Copy deployment slot parameters.
4429
4430    All required parameters must be populated in order to send to Azure.
4431
4432    :param target_slot: Required. Destination deployment slot during copy operation.
4433    :type target_slot: str
4434    :param site_config: Required. The site object which will be merged with the source slot site
4435     to produce new destination slot site object.
4436     :code:`<code>null</code>` to just copy source slot content. Otherwise a
4437     :code:`<code>Site</code>`
4438     object with properties to override source slot site.
4439    :type site_config: ~azure.mgmt.web.v2020_09_01.models.SiteConfig
4440    """
4441
4442    _validation = {
4443        'target_slot': {'required': True},
4444        'site_config': {'required': True},
4445    }
4446
4447    _attribute_map = {
4448        'target_slot': {'key': 'targetSlot', 'type': 'str'},
4449        'site_config': {'key': 'siteConfig', 'type': 'SiteConfig'},
4450    }
4451
4452    def __init__(
4453        self,
4454        **kwargs
4455    ):
4456        super(CsmCopySlotEntity, self).__init__(**kwargs)
4457        self.target_slot = kwargs['target_slot']
4458        self.site_config = kwargs['site_config']
4459
4460
4461class CsmMoveResourceEnvelope(msrest.serialization.Model):
4462    """Object with a list of the resources that need to be moved and the resource group they should be moved to.
4463
4464    :param target_resource_group:
4465    :type target_resource_group: str
4466    :param resources:
4467    :type resources: list[str]
4468    """
4469
4470    _validation = {
4471        'target_resource_group': {'max_length': 90, 'min_length': 1, 'pattern': r' ^[-\w\._\(\)]+[^\.]$'},
4472    }
4473
4474    _attribute_map = {
4475        'target_resource_group': {'key': 'targetResourceGroup', 'type': 'str'},
4476        'resources': {'key': 'resources', 'type': '[str]'},
4477    }
4478
4479    def __init__(
4480        self,
4481        **kwargs
4482    ):
4483        super(CsmMoveResourceEnvelope, self).__init__(**kwargs)
4484        self.target_resource_group = kwargs.get('target_resource_group', None)
4485        self.resources = kwargs.get('resources', None)
4486
4487
4488class CsmOperationCollection(msrest.serialization.Model):
4489    """Collection of Azure resource manager operation metadata.
4490
4491    Variables are only populated by the server, and will be ignored when sending a request.
4492
4493    All required parameters must be populated in order to send to Azure.
4494
4495    :param value: Required. Collection of resources.
4496    :type value: list[~azure.mgmt.web.v2020_09_01.models.CsmOperationDescription]
4497    :ivar next_link: Link to next page of resources.
4498    :vartype next_link: str
4499    """
4500
4501    _validation = {
4502        'value': {'required': True},
4503        'next_link': {'readonly': True},
4504    }
4505
4506    _attribute_map = {
4507        'value': {'key': 'value', 'type': '[CsmOperationDescription]'},
4508        'next_link': {'key': 'nextLink', 'type': 'str'},
4509    }
4510
4511    def __init__(
4512        self,
4513        **kwargs
4514    ):
4515        super(CsmOperationCollection, self).__init__(**kwargs)
4516        self.value = kwargs['value']
4517        self.next_link = None
4518
4519
4520class CsmOperationDescription(msrest.serialization.Model):
4521    """Description of an operation available for Microsoft.Web resource provider.
4522
4523    :param name:
4524    :type name: str
4525    :param display: Meta data about operation used for display in portal.
4526    :type display: ~azure.mgmt.web.v2020_09_01.models.CsmOperationDisplay
4527    :param origin:
4528    :type origin: str
4529    :param properties: Properties available for a Microsoft.Web resource provider operation.
4530    :type properties: ~azure.mgmt.web.v2020_09_01.models.CsmOperationDescriptionProperties
4531    """
4532
4533    _attribute_map = {
4534        'name': {'key': 'name', 'type': 'str'},
4535        'display': {'key': 'display', 'type': 'CsmOperationDisplay'},
4536        'origin': {'key': 'origin', 'type': 'str'},
4537        'properties': {'key': 'properties', 'type': 'CsmOperationDescriptionProperties'},
4538    }
4539
4540    def __init__(
4541        self,
4542        **kwargs
4543    ):
4544        super(CsmOperationDescription, self).__init__(**kwargs)
4545        self.name = kwargs.get('name', None)
4546        self.display = kwargs.get('display', None)
4547        self.origin = kwargs.get('origin', None)
4548        self.properties = kwargs.get('properties', None)
4549
4550
4551class CsmOperationDescriptionProperties(msrest.serialization.Model):
4552    """Properties available for a Microsoft.Web resource provider operation.
4553
4554    :param service_specification: Resource metrics service provided by Microsoft.Insights resource
4555     provider.
4556    :type service_specification: ~azure.mgmt.web.v2020_09_01.models.ServiceSpecification
4557    """
4558
4559    _attribute_map = {
4560        'service_specification': {'key': 'serviceSpecification', 'type': 'ServiceSpecification'},
4561    }
4562
4563    def __init__(
4564        self,
4565        **kwargs
4566    ):
4567        super(CsmOperationDescriptionProperties, self).__init__(**kwargs)
4568        self.service_specification = kwargs.get('service_specification', None)
4569
4570
4571class CsmOperationDisplay(msrest.serialization.Model):
4572    """Meta data about operation used for display in portal.
4573
4574    :param provider:
4575    :type provider: str
4576    :param resource:
4577    :type resource: str
4578    :param operation:
4579    :type operation: str
4580    :param description:
4581    :type description: str
4582    """
4583
4584    _attribute_map = {
4585        'provider': {'key': 'provider', 'type': 'str'},
4586        'resource': {'key': 'resource', 'type': 'str'},
4587        'operation': {'key': 'operation', 'type': 'str'},
4588        'description': {'key': 'description', 'type': 'str'},
4589    }
4590
4591    def __init__(
4592        self,
4593        **kwargs
4594    ):
4595        super(CsmOperationDisplay, self).__init__(**kwargs)
4596        self.provider = kwargs.get('provider', None)
4597        self.resource = kwargs.get('resource', None)
4598        self.operation = kwargs.get('operation', None)
4599        self.description = kwargs.get('description', None)
4600
4601
4602class CsmPublishingCredentialsPoliciesCollection(ProxyOnlyResource):
4603    """Publishing Credentials Policies collection.
4604
4605    Variables are only populated by the server, and will be ignored when sending a request.
4606
4607    :ivar id: Resource Id.
4608    :vartype id: str
4609    :ivar name: Resource Name.
4610    :vartype name: str
4611    :param kind: Kind of resource.
4612    :type kind: str
4613    :ivar type: Resource type.
4614    :vartype type: str
4615    :ivar system_data: The system metadata relating to this resource.
4616    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4617    :param ftp: Whether FTP is allowed.
4618    :type ftp: ~azure.mgmt.web.v2020_09_01.models.CsmPublishingCredentialsPoliciesEntity
4619    :param scm: Whether Scm Basic Auth is allowed.
4620    :type scm: ~azure.mgmt.web.v2020_09_01.models.CsmPublishingCredentialsPoliciesEntity
4621    """
4622
4623    _validation = {
4624        'id': {'readonly': True},
4625        'name': {'readonly': True},
4626        'type': {'readonly': True},
4627        'system_data': {'readonly': True},
4628    }
4629
4630    _attribute_map = {
4631        'id': {'key': 'id', 'type': 'str'},
4632        'name': {'key': 'name', 'type': 'str'},
4633        'kind': {'key': 'kind', 'type': 'str'},
4634        'type': {'key': 'type', 'type': 'str'},
4635        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4636        'ftp': {'key': 'properties.ftp', 'type': 'CsmPublishingCredentialsPoliciesEntity'},
4637        'scm': {'key': 'properties.scm', 'type': 'CsmPublishingCredentialsPoliciesEntity'},
4638    }
4639
4640    def __init__(
4641        self,
4642        **kwargs
4643    ):
4644        super(CsmPublishingCredentialsPoliciesCollection, self).__init__(**kwargs)
4645        self.ftp = kwargs.get('ftp', None)
4646        self.scm = kwargs.get('scm', None)
4647
4648
4649class CsmPublishingCredentialsPoliciesEntity(ProxyOnlyResource):
4650    """Publishing Credentials Policies parameters.
4651
4652    Variables are only populated by the server, and will be ignored when sending a request.
4653
4654    :ivar id: Resource Id.
4655    :vartype id: str
4656    :ivar name: Resource Name.
4657    :vartype name: str
4658    :param kind: Kind of resource.
4659    :type kind: str
4660    :ivar type: Resource type.
4661    :vartype type: str
4662    :ivar system_data: The system metadata relating to this resource.
4663    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4664    :param allow: :code:`<code>true</code>` to allow access to a publishing method; otherwise,
4665     :code:`<code>false</code>`.
4666    :type allow: bool
4667    """
4668
4669    _validation = {
4670        'id': {'readonly': True},
4671        'name': {'readonly': True},
4672        'type': {'readonly': True},
4673        'system_data': {'readonly': True},
4674    }
4675
4676    _attribute_map = {
4677        'id': {'key': 'id', 'type': 'str'},
4678        'name': {'key': 'name', 'type': 'str'},
4679        'kind': {'key': 'kind', 'type': 'str'},
4680        'type': {'key': 'type', 'type': 'str'},
4681        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4682        'allow': {'key': 'properties.allow', 'type': 'bool'},
4683    }
4684
4685    def __init__(
4686        self,
4687        **kwargs
4688    ):
4689        super(CsmPublishingCredentialsPoliciesEntity, self).__init__(**kwargs)
4690        self.allow = kwargs.get('allow', None)
4691
4692
4693class CsmPublishingProfileOptions(msrest.serialization.Model):
4694    """Publishing options for requested profile.
4695
4696    :param format: Name of the format. Valid values are:
4697     FileZilla3
4698     WebDeploy -- default
4699     Ftp. Possible values include: "FileZilla3", "WebDeploy", "Ftp".
4700    :type format: str or ~azure.mgmt.web.v2020_09_01.models.PublishingProfileFormat
4701    :param include_disaster_recovery_endpoints: Include the DisasterRecover endpoint if true.
4702    :type include_disaster_recovery_endpoints: bool
4703    """
4704
4705    _attribute_map = {
4706        'format': {'key': 'format', 'type': 'str'},
4707        'include_disaster_recovery_endpoints': {'key': 'includeDisasterRecoveryEndpoints', 'type': 'bool'},
4708    }
4709
4710    def __init__(
4711        self,
4712        **kwargs
4713    ):
4714        super(CsmPublishingProfileOptions, self).__init__(**kwargs)
4715        self.format = kwargs.get('format', None)
4716        self.include_disaster_recovery_endpoints = kwargs.get('include_disaster_recovery_endpoints', None)
4717
4718
4719class CsmSlotEntity(msrest.serialization.Model):
4720    """Deployment slot parameters.
4721
4722    All required parameters must be populated in order to send to Azure.
4723
4724    :param target_slot: Required. Destination deployment slot during swap operation.
4725    :type target_slot: str
4726    :param preserve_vnet: Required. :code:`<code>true</code>` to preserve Virtual Network to the
4727     slot during swap; otherwise, :code:`<code>false</code>`.
4728    :type preserve_vnet: bool
4729    """
4730
4731    _validation = {
4732        'target_slot': {'required': True},
4733        'preserve_vnet': {'required': True},
4734    }
4735
4736    _attribute_map = {
4737        'target_slot': {'key': 'targetSlot', 'type': 'str'},
4738        'preserve_vnet': {'key': 'preserveVnet', 'type': 'bool'},
4739    }
4740
4741    def __init__(
4742        self,
4743        **kwargs
4744    ):
4745        super(CsmSlotEntity, self).__init__(**kwargs)
4746        self.target_slot = kwargs['target_slot']
4747        self.preserve_vnet = kwargs['preserve_vnet']
4748
4749
4750class CsmUsageQuota(msrest.serialization.Model):
4751    """Usage of the quota resource.
4752
4753    :param unit: Units of measurement for the quota resource.
4754    :type unit: str
4755    :param next_reset_time: Next reset time for the resource counter.
4756    :type next_reset_time: ~datetime.datetime
4757    :param current_value: The current value of the resource counter.
4758    :type current_value: long
4759    :param limit: The resource limit.
4760    :type limit: long
4761    :param name: Quota name.
4762    :type name: ~azure.mgmt.web.v2020_09_01.models.LocalizableString
4763    """
4764
4765    _attribute_map = {
4766        'unit': {'key': 'unit', 'type': 'str'},
4767        'next_reset_time': {'key': 'nextResetTime', 'type': 'iso-8601'},
4768        'current_value': {'key': 'currentValue', 'type': 'long'},
4769        'limit': {'key': 'limit', 'type': 'long'},
4770        'name': {'key': 'name', 'type': 'LocalizableString'},
4771    }
4772
4773    def __init__(
4774        self,
4775        **kwargs
4776    ):
4777        super(CsmUsageQuota, self).__init__(**kwargs)
4778        self.unit = kwargs.get('unit', None)
4779        self.next_reset_time = kwargs.get('next_reset_time', None)
4780        self.current_value = kwargs.get('current_value', None)
4781        self.limit = kwargs.get('limit', None)
4782        self.name = kwargs.get('name', None)
4783
4784
4785class CsmUsageQuotaCollection(msrest.serialization.Model):
4786    """Collection of CSM usage quotas.
4787
4788    Variables are only populated by the server, and will be ignored when sending a request.
4789
4790    All required parameters must be populated in order to send to Azure.
4791
4792    :param value: Required. Collection of resources.
4793    :type value: list[~azure.mgmt.web.v2020_09_01.models.CsmUsageQuota]
4794    :ivar next_link: Link to next page of resources.
4795    :vartype next_link: str
4796    """
4797
4798    _validation = {
4799        'value': {'required': True},
4800        'next_link': {'readonly': True},
4801    }
4802
4803    _attribute_map = {
4804        'value': {'key': 'value', 'type': '[CsmUsageQuota]'},
4805        'next_link': {'key': 'nextLink', 'type': 'str'},
4806    }
4807
4808    def __init__(
4809        self,
4810        **kwargs
4811    ):
4812        super(CsmUsageQuotaCollection, self).__init__(**kwargs)
4813        self.value = kwargs['value']
4814        self.next_link = None
4815
4816
4817class CustomHostnameAnalysisResult(ProxyOnlyResource):
4818    """Custom domain analysis.
4819
4820    Variables are only populated by the server, and will be ignored when sending a request.
4821
4822    :ivar id: Resource Id.
4823    :vartype id: str
4824    :ivar name: Resource Name.
4825    :vartype name: str
4826    :param kind: Kind of resource.
4827    :type kind: str
4828    :ivar type: Resource type.
4829    :vartype type: str
4830    :ivar system_data: The system metadata relating to this resource.
4831    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4832    :ivar is_hostname_already_verified: :code:`<code>true</code>` if hostname is already verified;
4833     otherwise, :code:`<code>false</code>`.
4834    :vartype is_hostname_already_verified: bool
4835    :ivar custom_domain_verification_test: DNS verification test result. Possible values include:
4836     "Passed", "Failed", "Skipped".
4837    :vartype custom_domain_verification_test: str or
4838     ~azure.mgmt.web.v2020_09_01.models.DnsVerificationTestResult
4839    :ivar custom_domain_verification_failure_info: Raw failure information if DNS verification
4840     fails.
4841    :vartype custom_domain_verification_failure_info:
4842     ~azure.mgmt.web.v2020_09_01.models.ErrorEntity
4843    :ivar has_conflict_on_scale_unit: :code:`<code>true</code>` if there is a conflict on a scale
4844     unit; otherwise, :code:`<code>false</code>`.
4845    :vartype has_conflict_on_scale_unit: bool
4846    :ivar has_conflict_across_subscription: :code:`<code>true</code>` if there is a conflict across
4847     subscriptions; otherwise, :code:`<code>false</code>`.
4848    :vartype has_conflict_across_subscription: bool
4849    :ivar conflicting_app_resource_id: Name of the conflicting app on scale unit if it's within the
4850     same subscription.
4851    :vartype conflicting_app_resource_id: str
4852    :param c_name_records: CName records controller can see for this hostname.
4853    :type c_name_records: list[str]
4854    :param txt_records: TXT records controller can see for this hostname.
4855    :type txt_records: list[str]
4856    :param a_records: A records controller can see for this hostname.
4857    :type a_records: list[str]
4858    :param alternate_c_name_records: Alternate CName records controller can see for this hostname.
4859    :type alternate_c_name_records: list[str]
4860    :param alternate_txt_records: Alternate TXT records controller can see for this hostname.
4861    :type alternate_txt_records: list[str]
4862    """
4863
4864    _validation = {
4865        'id': {'readonly': True},
4866        'name': {'readonly': True},
4867        'type': {'readonly': True},
4868        'system_data': {'readonly': True},
4869        'is_hostname_already_verified': {'readonly': True},
4870        'custom_domain_verification_test': {'readonly': True},
4871        'custom_domain_verification_failure_info': {'readonly': True},
4872        'has_conflict_on_scale_unit': {'readonly': True},
4873        'has_conflict_across_subscription': {'readonly': True},
4874        'conflicting_app_resource_id': {'readonly': True},
4875    }
4876
4877    _attribute_map = {
4878        'id': {'key': 'id', 'type': 'str'},
4879        'name': {'key': 'name', 'type': 'str'},
4880        'kind': {'key': 'kind', 'type': 'str'},
4881        'type': {'key': 'type', 'type': 'str'},
4882        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4883        'is_hostname_already_verified': {'key': 'properties.isHostnameAlreadyVerified', 'type': 'bool'},
4884        'custom_domain_verification_test': {'key': 'properties.customDomainVerificationTest', 'type': 'str'},
4885        'custom_domain_verification_failure_info': {'key': 'properties.customDomainVerificationFailureInfo', 'type': 'ErrorEntity'},
4886        'has_conflict_on_scale_unit': {'key': 'properties.hasConflictOnScaleUnit', 'type': 'bool'},
4887        'has_conflict_across_subscription': {'key': 'properties.hasConflictAcrossSubscription', 'type': 'bool'},
4888        'conflicting_app_resource_id': {'key': 'properties.conflictingAppResourceId', 'type': 'str'},
4889        'c_name_records': {'key': 'properties.cNameRecords', 'type': '[str]'},
4890        'txt_records': {'key': 'properties.txtRecords', 'type': '[str]'},
4891        'a_records': {'key': 'properties.aRecords', 'type': '[str]'},
4892        'alternate_c_name_records': {'key': 'properties.alternateCNameRecords', 'type': '[str]'},
4893        'alternate_txt_records': {'key': 'properties.alternateTxtRecords', 'type': '[str]'},
4894    }
4895
4896    def __init__(
4897        self,
4898        **kwargs
4899    ):
4900        super(CustomHostnameAnalysisResult, self).__init__(**kwargs)
4901        self.is_hostname_already_verified = None
4902        self.custom_domain_verification_test = None
4903        self.custom_domain_verification_failure_info = None
4904        self.has_conflict_on_scale_unit = None
4905        self.has_conflict_across_subscription = None
4906        self.conflicting_app_resource_id = None
4907        self.c_name_records = kwargs.get('c_name_records', None)
4908        self.txt_records = kwargs.get('txt_records', None)
4909        self.a_records = kwargs.get('a_records', None)
4910        self.alternate_c_name_records = kwargs.get('alternate_c_name_records', None)
4911        self.alternate_txt_records = kwargs.get('alternate_txt_records', None)
4912
4913
4914class CustomOpenIdConnectProvider(ProxyOnlyResource):
4915    """CustomOpenIdConnectProvider.
4916
4917    Variables are only populated by the server, and will be ignored when sending a request.
4918
4919    :ivar id: Resource Id.
4920    :vartype id: str
4921    :ivar name: Resource Name.
4922    :vartype name: str
4923    :param kind: Kind of resource.
4924    :type kind: str
4925    :ivar type: Resource type.
4926    :vartype type: str
4927    :ivar system_data: The system metadata relating to this resource.
4928    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
4929    :param enabled:
4930    :type enabled: bool
4931    :param registration:
4932    :type registration: ~azure.mgmt.web.v2020_09_01.models.OpenIdConnectRegistration
4933    :param login:
4934    :type login: ~azure.mgmt.web.v2020_09_01.models.OpenIdConnectLogin
4935    """
4936
4937    _validation = {
4938        'id': {'readonly': True},
4939        'name': {'readonly': True},
4940        'type': {'readonly': True},
4941        'system_data': {'readonly': True},
4942    }
4943
4944    _attribute_map = {
4945        'id': {'key': 'id', 'type': 'str'},
4946        'name': {'key': 'name', 'type': 'str'},
4947        'kind': {'key': 'kind', 'type': 'str'},
4948        'type': {'key': 'type', 'type': 'str'},
4949        'system_data': {'key': 'systemData', 'type': 'SystemData'},
4950        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
4951        'registration': {'key': 'properties.registration', 'type': 'OpenIdConnectRegistration'},
4952        'login': {'key': 'properties.login', 'type': 'OpenIdConnectLogin'},
4953    }
4954
4955    def __init__(
4956        self,
4957        **kwargs
4958    ):
4959        super(CustomOpenIdConnectProvider, self).__init__(**kwargs)
4960        self.enabled = kwargs.get('enabled', None)
4961        self.registration = kwargs.get('registration', None)
4962        self.login = kwargs.get('login', None)
4963
4964
4965class DatabaseBackupSetting(msrest.serialization.Model):
4966    """Database backup settings.
4967
4968    All required parameters must be populated in order to send to Azure.
4969
4970    :param database_type: Required. Database type (e.g. SqlAzure / MySql). Possible values include:
4971     "SqlAzure", "MySql", "LocalMySql", "PostgreSql".
4972    :type database_type: str or ~azure.mgmt.web.v2020_09_01.models.DatabaseType
4973    :param name:
4974    :type name: str
4975    :param connection_string_name: Contains a connection string name that is linked to the
4976     SiteConfig.ConnectionStrings.
4977     This is used during restore with overwrite connection strings options.
4978    :type connection_string_name: str
4979    :param connection_string: Contains a connection string to a database which is being backed up
4980     or restored. If the restore should happen to a new database, the database name inside is the
4981     new one.
4982    :type connection_string: str
4983    """
4984
4985    _validation = {
4986        'database_type': {'required': True},
4987    }
4988
4989    _attribute_map = {
4990        'database_type': {'key': 'databaseType', 'type': 'str'},
4991        'name': {'key': 'name', 'type': 'str'},
4992        'connection_string_name': {'key': 'connectionStringName', 'type': 'str'},
4993        'connection_string': {'key': 'connectionString', 'type': 'str'},
4994    }
4995
4996    def __init__(
4997        self,
4998        **kwargs
4999    ):
5000        super(DatabaseBackupSetting, self).__init__(**kwargs)
5001        self.database_type = kwargs['database_type']
5002        self.name = kwargs.get('name', None)
5003        self.connection_string_name = kwargs.get('connection_string_name', None)
5004        self.connection_string = kwargs.get('connection_string', None)
5005
5006
5007class DataSource(msrest.serialization.Model):
5008    """Class representing data source used by the detectors.
5009
5010    :param instructions: Instructions if any for the data source.
5011    :type instructions: list[str]
5012    :param data_source_uri: Datasource Uri Links.
5013    :type data_source_uri: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
5014    """
5015
5016    _attribute_map = {
5017        'instructions': {'key': 'instructions', 'type': '[str]'},
5018        'data_source_uri': {'key': 'dataSourceUri', 'type': '[NameValuePair]'},
5019    }
5020
5021    def __init__(
5022        self,
5023        **kwargs
5024    ):
5025        super(DataSource, self).__init__(**kwargs)
5026        self.instructions = kwargs.get('instructions', None)
5027        self.data_source_uri = kwargs.get('data_source_uri', None)
5028
5029
5030class DataTableResponseColumn(msrest.serialization.Model):
5031    """Column definition.
5032
5033    :param column_name: Name of the column.
5034    :type column_name: str
5035    :param data_type: Data type which looks like 'String' or 'Int32'.
5036    :type data_type: str
5037    :param column_type: Column Type.
5038    :type column_type: str
5039    """
5040
5041    _attribute_map = {
5042        'column_name': {'key': 'columnName', 'type': 'str'},
5043        'data_type': {'key': 'dataType', 'type': 'str'},
5044        'column_type': {'key': 'columnType', 'type': 'str'},
5045    }
5046
5047    def __init__(
5048        self,
5049        **kwargs
5050    ):
5051        super(DataTableResponseColumn, self).__init__(**kwargs)
5052        self.column_name = kwargs.get('column_name', None)
5053        self.data_type = kwargs.get('data_type', None)
5054        self.column_type = kwargs.get('column_type', None)
5055
5056
5057class DataTableResponseObject(msrest.serialization.Model):
5058    """Data Table which defines columns and raw row values.
5059
5060    :param table_name: Name of the table.
5061    :type table_name: str
5062    :param columns: List of columns with data types.
5063    :type columns: list[~azure.mgmt.web.v2020_09_01.models.DataTableResponseColumn]
5064    :param rows: Raw row values.
5065    :type rows: list[list[str]]
5066    """
5067
5068    _attribute_map = {
5069        'table_name': {'key': 'tableName', 'type': 'str'},
5070        'columns': {'key': 'columns', 'type': '[DataTableResponseColumn]'},
5071        'rows': {'key': 'rows', 'type': '[[str]]'},
5072    }
5073
5074    def __init__(
5075        self,
5076        **kwargs
5077    ):
5078        super(DataTableResponseObject, self).__init__(**kwargs)
5079        self.table_name = kwargs.get('table_name', None)
5080        self.columns = kwargs.get('columns', None)
5081        self.rows = kwargs.get('rows', None)
5082
5083
5084class DefaultErrorResponse(msrest.serialization.Model):
5085    """App Service error response.
5086
5087    Variables are only populated by the server, and will be ignored when sending a request.
5088
5089    :ivar error: Error model.
5090    :vartype error: ~azure.mgmt.web.v2020_09_01.models.DefaultErrorResponseError
5091    """
5092
5093    _validation = {
5094        'error': {'readonly': True},
5095    }
5096
5097    _attribute_map = {
5098        'error': {'key': 'error', 'type': 'DefaultErrorResponseError'},
5099    }
5100
5101    def __init__(
5102        self,
5103        **kwargs
5104    ):
5105        super(DefaultErrorResponse, self).__init__(**kwargs)
5106        self.error = None
5107
5108
5109class DefaultErrorResponseError(msrest.serialization.Model):
5110    """Error model.
5111
5112    Variables are only populated by the server, and will be ignored when sending a request.
5113
5114    :ivar code: Standardized string to programmatically identify the error.
5115    :vartype code: str
5116    :ivar message: Detailed error description and debugging information.
5117    :vartype message: str
5118    :ivar target: Detailed error description and debugging information.
5119    :vartype target: str
5120    :param details:
5121    :type details: list[~azure.mgmt.web.v2020_09_01.models.DefaultErrorResponseErrorDetailsItem]
5122    :ivar innererror: More information to debug error.
5123    :vartype innererror: str
5124    """
5125
5126    _validation = {
5127        'code': {'readonly': True},
5128        'message': {'readonly': True},
5129        'target': {'readonly': True},
5130        'innererror': {'readonly': True},
5131    }
5132
5133    _attribute_map = {
5134        'code': {'key': 'code', 'type': 'str'},
5135        'message': {'key': 'message', 'type': 'str'},
5136        'target': {'key': 'target', 'type': 'str'},
5137        'details': {'key': 'details', 'type': '[DefaultErrorResponseErrorDetailsItem]'},
5138        'innererror': {'key': 'innererror', 'type': 'str'},
5139    }
5140
5141    def __init__(
5142        self,
5143        **kwargs
5144    ):
5145        super(DefaultErrorResponseError, self).__init__(**kwargs)
5146        self.code = None
5147        self.message = None
5148        self.target = None
5149        self.details = kwargs.get('details', None)
5150        self.innererror = None
5151
5152
5153class DefaultErrorResponseErrorDetailsItem(msrest.serialization.Model):
5154    """Detailed errors.
5155
5156    Variables are only populated by the server, and will be ignored when sending a request.
5157
5158    :ivar code: Standardized string to programmatically identify the error.
5159    :vartype code: str
5160    :ivar message: Detailed error description and debugging information.
5161    :vartype message: str
5162    :ivar target: Detailed error description and debugging information.
5163    :vartype target: str
5164    """
5165
5166    _validation = {
5167        'code': {'readonly': True},
5168        'message': {'readonly': True},
5169        'target': {'readonly': True},
5170    }
5171
5172    _attribute_map = {
5173        'code': {'key': 'code', 'type': 'str'},
5174        'message': {'key': 'message', 'type': 'str'},
5175        'target': {'key': 'target', 'type': 'str'},
5176    }
5177
5178    def __init__(
5179        self,
5180        **kwargs
5181    ):
5182        super(DefaultErrorResponseErrorDetailsItem, self).__init__(**kwargs)
5183        self.code = None
5184        self.message = None
5185        self.target = None
5186
5187
5188class DeletedAppRestoreRequest(ProxyOnlyResource):
5189    """Details about restoring a deleted app.
5190
5191    Variables are only populated by the server, and will be ignored when sending a request.
5192
5193    :ivar id: Resource Id.
5194    :vartype id: str
5195    :ivar name: Resource Name.
5196    :vartype name: str
5197    :param kind: Kind of resource.
5198    :type kind: str
5199    :ivar type: Resource type.
5200    :vartype type: str
5201    :ivar system_data: The system metadata relating to this resource.
5202    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5203    :param deleted_site_id: ARM resource ID of the deleted app. Example:
5204     /subscriptions/{subId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}.
5205    :type deleted_site_id: str
5206    :param recover_configuration: If true, deleted site configuration, in addition to content, will
5207     be restored.
5208    :type recover_configuration: bool
5209    :param snapshot_time: Point in time to restore the deleted app from, formatted as a DateTime
5210     string.
5211     If unspecified, default value is the time that the app was deleted.
5212    :type snapshot_time: str
5213    :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint.
5214    :type use_dr_secondary: bool
5215    """
5216
5217    _validation = {
5218        'id': {'readonly': True},
5219        'name': {'readonly': True},
5220        'type': {'readonly': True},
5221        'system_data': {'readonly': True},
5222    }
5223
5224    _attribute_map = {
5225        'id': {'key': 'id', 'type': 'str'},
5226        'name': {'key': 'name', 'type': 'str'},
5227        'kind': {'key': 'kind', 'type': 'str'},
5228        'type': {'key': 'type', 'type': 'str'},
5229        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5230        'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'str'},
5231        'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'},
5232        'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'},
5233        'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'},
5234    }
5235
5236    def __init__(
5237        self,
5238        **kwargs
5239    ):
5240        super(DeletedAppRestoreRequest, self).__init__(**kwargs)
5241        self.deleted_site_id = kwargs.get('deleted_site_id', None)
5242        self.recover_configuration = kwargs.get('recover_configuration', None)
5243        self.snapshot_time = kwargs.get('snapshot_time', None)
5244        self.use_dr_secondary = kwargs.get('use_dr_secondary', None)
5245
5246
5247class DeletedSite(ProxyOnlyResource):
5248    """A deleted app.
5249
5250    Variables are only populated by the server, and will be ignored when sending a request.
5251
5252    :ivar id: Resource Id.
5253    :vartype id: str
5254    :ivar name: Resource Name.
5255    :vartype name: str
5256    :param kind: Kind of resource.
5257    :type kind: str
5258    :ivar type: Resource type.
5259    :vartype type: str
5260    :ivar system_data: The system metadata relating to this resource.
5261    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5262    :ivar deleted_site_id: Numeric id for the deleted site.
5263    :vartype deleted_site_id: int
5264    :ivar deleted_timestamp: Time in UTC when the app was deleted.
5265    :vartype deleted_timestamp: str
5266    :ivar subscription: Subscription containing the deleted site.
5267    :vartype subscription: str
5268    :ivar resource_group: ResourceGroup that contained the deleted site.
5269    :vartype resource_group: str
5270    :ivar deleted_site_name: Name of the deleted site.
5271    :vartype deleted_site_name: str
5272    :ivar slot: Slot of the deleted site.
5273    :vartype slot: str
5274    :ivar kind_properties_kind: Kind of site that was deleted.
5275    :vartype kind_properties_kind: str
5276    :ivar geo_region_name: Geo Region of the deleted site.
5277    :vartype geo_region_name: str
5278    """
5279
5280    _validation = {
5281        'id': {'readonly': True},
5282        'name': {'readonly': True},
5283        'type': {'readonly': True},
5284        'system_data': {'readonly': True},
5285        'deleted_site_id': {'readonly': True},
5286        'deleted_timestamp': {'readonly': True},
5287        'subscription': {'readonly': True},
5288        'resource_group': {'readonly': True},
5289        'deleted_site_name': {'readonly': True},
5290        'slot': {'readonly': True},
5291        'kind_properties_kind': {'readonly': True},
5292        'geo_region_name': {'readonly': True},
5293    }
5294
5295    _attribute_map = {
5296        'id': {'key': 'id', 'type': 'str'},
5297        'name': {'key': 'name', 'type': 'str'},
5298        'kind': {'key': 'kind', 'type': 'str'},
5299        'type': {'key': 'type', 'type': 'str'},
5300        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5301        'deleted_site_id': {'key': 'properties.deletedSiteId', 'type': 'int'},
5302        'deleted_timestamp': {'key': 'properties.deletedTimestamp', 'type': 'str'},
5303        'subscription': {'key': 'properties.subscription', 'type': 'str'},
5304        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
5305        'deleted_site_name': {'key': 'properties.deletedSiteName', 'type': 'str'},
5306        'slot': {'key': 'properties.slot', 'type': 'str'},
5307        'kind_properties_kind': {'key': 'properties.kind', 'type': 'str'},
5308        'geo_region_name': {'key': 'properties.geoRegionName', 'type': 'str'},
5309    }
5310
5311    def __init__(
5312        self,
5313        **kwargs
5314    ):
5315        super(DeletedSite, self).__init__(**kwargs)
5316        self.deleted_site_id = None
5317        self.deleted_timestamp = None
5318        self.subscription = None
5319        self.resource_group = None
5320        self.deleted_site_name = None
5321        self.slot = None
5322        self.kind_properties_kind = None
5323        self.geo_region_name = None
5324
5325
5326class DeletedWebAppCollection(msrest.serialization.Model):
5327    """Collection of deleted apps.
5328
5329    Variables are only populated by the server, and will be ignored when sending a request.
5330
5331    All required parameters must be populated in order to send to Azure.
5332
5333    :param value: Required. Collection of resources.
5334    :type value: list[~azure.mgmt.web.v2020_09_01.models.DeletedSite]
5335    :ivar next_link: Link to next page of resources.
5336    :vartype next_link: str
5337    """
5338
5339    _validation = {
5340        'value': {'required': True},
5341        'next_link': {'readonly': True},
5342    }
5343
5344    _attribute_map = {
5345        'value': {'key': 'value', 'type': '[DeletedSite]'},
5346        'next_link': {'key': 'nextLink', 'type': 'str'},
5347    }
5348
5349    def __init__(
5350        self,
5351        **kwargs
5352    ):
5353        super(DeletedWebAppCollection, self).__init__(**kwargs)
5354        self.value = kwargs['value']
5355        self.next_link = None
5356
5357
5358class Deployment(ProxyOnlyResource):
5359    """User credentials used for publishing activity.
5360
5361    Variables are only populated by the server, and will be ignored when sending a request.
5362
5363    :ivar id: Resource Id.
5364    :vartype id: str
5365    :ivar name: Resource Name.
5366    :vartype name: str
5367    :param kind: Kind of resource.
5368    :type kind: str
5369    :ivar type: Resource type.
5370    :vartype type: str
5371    :ivar system_data: The system metadata relating to this resource.
5372    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5373    :param status: Deployment status.
5374    :type status: int
5375    :param message: Details about deployment status.
5376    :type message: str
5377    :param author: Who authored the deployment.
5378    :type author: str
5379    :param deployer: Who performed the deployment.
5380    :type deployer: str
5381    :param author_email: Author email.
5382    :type author_email: str
5383    :param start_time: Start time.
5384    :type start_time: ~datetime.datetime
5385    :param end_time: End time.
5386    :type end_time: ~datetime.datetime
5387    :param active: True if deployment is currently active, false if completed and null if not
5388     started.
5389    :type active: bool
5390    :param details: Details on deployment.
5391    :type details: str
5392    """
5393
5394    _validation = {
5395        'id': {'readonly': True},
5396        'name': {'readonly': True},
5397        'type': {'readonly': True},
5398        'system_data': {'readonly': True},
5399    }
5400
5401    _attribute_map = {
5402        'id': {'key': 'id', 'type': 'str'},
5403        'name': {'key': 'name', 'type': 'str'},
5404        'kind': {'key': 'kind', 'type': 'str'},
5405        'type': {'key': 'type', 'type': 'str'},
5406        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5407        'status': {'key': 'properties.status', 'type': 'int'},
5408        'message': {'key': 'properties.message', 'type': 'str'},
5409        'author': {'key': 'properties.author', 'type': 'str'},
5410        'deployer': {'key': 'properties.deployer', 'type': 'str'},
5411        'author_email': {'key': 'properties.author_email', 'type': 'str'},
5412        'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'},
5413        'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'},
5414        'active': {'key': 'properties.active', 'type': 'bool'},
5415        'details': {'key': 'properties.details', 'type': 'str'},
5416    }
5417
5418    def __init__(
5419        self,
5420        **kwargs
5421    ):
5422        super(Deployment, self).__init__(**kwargs)
5423        self.status = kwargs.get('status', None)
5424        self.message = kwargs.get('message', None)
5425        self.author = kwargs.get('author', None)
5426        self.deployer = kwargs.get('deployer', None)
5427        self.author_email = kwargs.get('author_email', None)
5428        self.start_time = kwargs.get('start_time', None)
5429        self.end_time = kwargs.get('end_time', None)
5430        self.active = kwargs.get('active', None)
5431        self.details = kwargs.get('details', None)
5432
5433
5434class DeploymentCollection(msrest.serialization.Model):
5435    """Collection of app deployments.
5436
5437    Variables are only populated by the server, and will be ignored when sending a request.
5438
5439    All required parameters must be populated in order to send to Azure.
5440
5441    :param value: Required. Collection of resources.
5442    :type value: list[~azure.mgmt.web.v2020_09_01.models.Deployment]
5443    :ivar next_link: Link to next page of resources.
5444    :vartype next_link: str
5445    """
5446
5447    _validation = {
5448        'value': {'required': True},
5449        'next_link': {'readonly': True},
5450    }
5451
5452    _attribute_map = {
5453        'value': {'key': 'value', 'type': '[Deployment]'},
5454        'next_link': {'key': 'nextLink', 'type': 'str'},
5455    }
5456
5457    def __init__(
5458        self,
5459        **kwargs
5460    ):
5461        super(DeploymentCollection, self).__init__(**kwargs)
5462        self.value = kwargs['value']
5463        self.next_link = None
5464
5465
5466class DeploymentLocations(msrest.serialization.Model):
5467    """List of available locations (regions or App Service Environments) for
5468deployment of App Service resources.
5469
5470    :param locations: Available regions.
5471    :type locations: list[~azure.mgmt.web.v2020_09_01.models.GeoRegion]
5472    :param hosting_environments: Available App Service Environments with full descriptions of the
5473     environments.
5474    :type hosting_environments: list[~azure.mgmt.web.v2020_09_01.models.AppServiceEnvironment]
5475    :param hosting_environment_deployment_infos: Available App Service Environments with basic
5476     information.
5477    :type hosting_environment_deployment_infos:
5478     list[~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentDeploymentInfo]
5479    """
5480
5481    _attribute_map = {
5482        'locations': {'key': 'locations', 'type': '[GeoRegion]'},
5483        'hosting_environments': {'key': 'hostingEnvironments', 'type': '[AppServiceEnvironment]'},
5484        'hosting_environment_deployment_infos': {'key': 'hostingEnvironmentDeploymentInfos', 'type': '[HostingEnvironmentDeploymentInfo]'},
5485    }
5486
5487    def __init__(
5488        self,
5489        **kwargs
5490    ):
5491        super(DeploymentLocations, self).__init__(**kwargs)
5492        self.locations = kwargs.get('locations', None)
5493        self.hosting_environments = kwargs.get('hosting_environments', None)
5494        self.hosting_environment_deployment_infos = kwargs.get('hosting_environment_deployment_infos', None)
5495
5496
5497class DetectorAbnormalTimePeriod(msrest.serialization.Model):
5498    """Class representing Abnormal Time Period detected.
5499
5500    :param start_time: Start time of the correlated event.
5501    :type start_time: ~datetime.datetime
5502    :param end_time: End time of the correlated event.
5503    :type end_time: ~datetime.datetime
5504    :param message: Message describing the event.
5505    :type message: str
5506    :param source: Represents the name of the Detector.
5507    :type source: str
5508    :param priority: Represents the rank of the Detector.
5509    :type priority: float
5510    :param meta_data: Downtime metadata.
5511    :type meta_data: list[list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]]
5512    :param type: Represents the type of the Detector. Possible values include: "ServiceIncident",
5513     "AppDeployment", "AppCrash", "RuntimeIssueDetected", "AseDeployment", "UserIssue",
5514     "PlatformIssue", "Other".
5515    :type type: str or ~azure.mgmt.web.v2020_09_01.models.IssueType
5516    :param solutions: List of proposed solutions.
5517    :type solutions: list[~azure.mgmt.web.v2020_09_01.models.Solution]
5518    """
5519
5520    _attribute_map = {
5521        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
5522        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
5523        'message': {'key': 'message', 'type': 'str'},
5524        'source': {'key': 'source', 'type': 'str'},
5525        'priority': {'key': 'priority', 'type': 'float'},
5526        'meta_data': {'key': 'metaData', 'type': '[[NameValuePair]]'},
5527        'type': {'key': 'type', 'type': 'str'},
5528        'solutions': {'key': 'solutions', 'type': '[Solution]'},
5529    }
5530
5531    def __init__(
5532        self,
5533        **kwargs
5534    ):
5535        super(DetectorAbnormalTimePeriod, self).__init__(**kwargs)
5536        self.start_time = kwargs.get('start_time', None)
5537        self.end_time = kwargs.get('end_time', None)
5538        self.message = kwargs.get('message', None)
5539        self.source = kwargs.get('source', None)
5540        self.priority = kwargs.get('priority', None)
5541        self.meta_data = kwargs.get('meta_data', None)
5542        self.type = kwargs.get('type', None)
5543        self.solutions = kwargs.get('solutions', None)
5544
5545
5546class DetectorDefinition(ProxyOnlyResource):
5547    """Class representing detector definition.
5548
5549    Variables are only populated by the server, and will be ignored when sending a request.
5550
5551    :ivar id: Resource Id.
5552    :vartype id: str
5553    :ivar name: Resource Name.
5554    :vartype name: str
5555    :param kind: Kind of resource.
5556    :type kind: str
5557    :ivar type: Resource type.
5558    :vartype type: str
5559    :ivar system_data: The system metadata relating to this resource.
5560    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5561    :ivar display_name: Display name of the detector.
5562    :vartype display_name: str
5563    :ivar description: Description of the detector.
5564    :vartype description: str
5565    :ivar rank: Detector Rank.
5566    :vartype rank: float
5567    :ivar is_enabled: Flag representing whether detector is enabled or not.
5568    :vartype is_enabled: bool
5569    """
5570
5571    _validation = {
5572        'id': {'readonly': True},
5573        'name': {'readonly': True},
5574        'type': {'readonly': True},
5575        'system_data': {'readonly': True},
5576        'display_name': {'readonly': True},
5577        'description': {'readonly': True},
5578        'rank': {'readonly': True},
5579        'is_enabled': {'readonly': True},
5580    }
5581
5582    _attribute_map = {
5583        'id': {'key': 'id', 'type': 'str'},
5584        'name': {'key': 'name', 'type': 'str'},
5585        'kind': {'key': 'kind', 'type': 'str'},
5586        'type': {'key': 'type', 'type': 'str'},
5587        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5588        'display_name': {'key': 'properties.displayName', 'type': 'str'},
5589        'description': {'key': 'properties.description', 'type': 'str'},
5590        'rank': {'key': 'properties.rank', 'type': 'float'},
5591        'is_enabled': {'key': 'properties.isEnabled', 'type': 'bool'},
5592    }
5593
5594    def __init__(
5595        self,
5596        **kwargs
5597    ):
5598        super(DetectorDefinition, self).__init__(**kwargs)
5599        self.display_name = None
5600        self.description = None
5601        self.rank = None
5602        self.is_enabled = None
5603
5604
5605class DetectorInfo(msrest.serialization.Model):
5606    """Definition of Detector.
5607
5608    Variables are only populated by the server, and will be ignored when sending a request.
5609
5610    :ivar description: Short description of the detector and its purpose.
5611    :vartype description: str
5612    :ivar category: Support Category.
5613    :vartype category: str
5614    :ivar sub_category: Support Sub Category.
5615    :vartype sub_category: str
5616    :ivar support_topic_id: Support Topic Id.
5617    :vartype support_topic_id: str
5618    """
5619
5620    _validation = {
5621        'description': {'readonly': True},
5622        'category': {'readonly': True},
5623        'sub_category': {'readonly': True},
5624        'support_topic_id': {'readonly': True},
5625    }
5626
5627    _attribute_map = {
5628        'description': {'key': 'description', 'type': 'str'},
5629        'category': {'key': 'category', 'type': 'str'},
5630        'sub_category': {'key': 'subCategory', 'type': 'str'},
5631        'support_topic_id': {'key': 'supportTopicId', 'type': 'str'},
5632    }
5633
5634    def __init__(
5635        self,
5636        **kwargs
5637    ):
5638        super(DetectorInfo, self).__init__(**kwargs)
5639        self.description = None
5640        self.category = None
5641        self.sub_category = None
5642        self.support_topic_id = None
5643
5644
5645class DetectorResponse(ProxyOnlyResource):
5646    """Class representing Response from Detector.
5647
5648    Variables are only populated by the server, and will be ignored when sending a request.
5649
5650    :ivar id: Resource Id.
5651    :vartype id: str
5652    :ivar name: Resource Name.
5653    :vartype name: str
5654    :param kind: Kind of resource.
5655    :type kind: str
5656    :ivar type: Resource type.
5657    :vartype type: str
5658    :ivar system_data: The system metadata relating to this resource.
5659    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5660    :param metadata: metadata for the detector.
5661    :type metadata: ~azure.mgmt.web.v2020_09_01.models.DetectorInfo
5662    :param dataset: Data Set.
5663    :type dataset: list[~azure.mgmt.web.v2020_09_01.models.DiagnosticData]
5664    """
5665
5666    _validation = {
5667        'id': {'readonly': True},
5668        'name': {'readonly': True},
5669        'type': {'readonly': True},
5670        'system_data': {'readonly': True},
5671    }
5672
5673    _attribute_map = {
5674        'id': {'key': 'id', 'type': 'str'},
5675        'name': {'key': 'name', 'type': 'str'},
5676        'kind': {'key': 'kind', 'type': 'str'},
5677        'type': {'key': 'type', 'type': 'str'},
5678        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5679        'metadata': {'key': 'properties.metadata', 'type': 'DetectorInfo'},
5680        'dataset': {'key': 'properties.dataset', 'type': '[DiagnosticData]'},
5681    }
5682
5683    def __init__(
5684        self,
5685        **kwargs
5686    ):
5687        super(DetectorResponse, self).__init__(**kwargs)
5688        self.metadata = kwargs.get('metadata', None)
5689        self.dataset = kwargs.get('dataset', None)
5690
5691
5692class DetectorResponseCollection(msrest.serialization.Model):
5693    """Collection of detector responses.
5694
5695    Variables are only populated by the server, and will be ignored when sending a request.
5696
5697    All required parameters must be populated in order to send to Azure.
5698
5699    :param value: Required. Collection of resources.
5700    :type value: list[~azure.mgmt.web.v2020_09_01.models.DetectorResponse]
5701    :ivar next_link: Link to next page of resources.
5702    :vartype next_link: str
5703    """
5704
5705    _validation = {
5706        'value': {'required': True},
5707        'next_link': {'readonly': True},
5708    }
5709
5710    _attribute_map = {
5711        'value': {'key': 'value', 'type': '[DetectorResponse]'},
5712        'next_link': {'key': 'nextLink', 'type': 'str'},
5713    }
5714
5715    def __init__(
5716        self,
5717        **kwargs
5718    ):
5719        super(DetectorResponseCollection, self).__init__(**kwargs)
5720        self.value = kwargs['value']
5721        self.next_link = None
5722
5723
5724class DiagnosticAnalysis(ProxyOnlyResource):
5725    """Class representing a diagnostic analysis done on an application.
5726
5727    Variables are only populated by the server, and will be ignored when sending a request.
5728
5729    :ivar id: Resource Id.
5730    :vartype id: str
5731    :ivar name: Resource Name.
5732    :vartype name: str
5733    :param kind: Kind of resource.
5734    :type kind: str
5735    :ivar type: Resource type.
5736    :vartype type: str
5737    :ivar system_data: The system metadata relating to this resource.
5738    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5739    :param start_time: Start time of the period.
5740    :type start_time: ~datetime.datetime
5741    :param end_time: End time of the period.
5742    :type end_time: ~datetime.datetime
5743    :param abnormal_time_periods: List of time periods.
5744    :type abnormal_time_periods: list[~azure.mgmt.web.v2020_09_01.models.AbnormalTimePeriod]
5745    :param payload: Data by each detector.
5746    :type payload: list[~azure.mgmt.web.v2020_09_01.models.AnalysisData]
5747    :param non_correlated_detectors: Data by each detector for detectors that did not corelate.
5748    :type non_correlated_detectors: list[~azure.mgmt.web.v2020_09_01.models.DetectorDefinition]
5749    """
5750
5751    _validation = {
5752        'id': {'readonly': True},
5753        'name': {'readonly': True},
5754        'type': {'readonly': True},
5755        'system_data': {'readonly': True},
5756    }
5757
5758    _attribute_map = {
5759        'id': {'key': 'id', 'type': 'str'},
5760        'name': {'key': 'name', 'type': 'str'},
5761        'kind': {'key': 'kind', 'type': 'str'},
5762        'type': {'key': 'type', 'type': 'str'},
5763        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5764        'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'},
5765        'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'},
5766        'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[AbnormalTimePeriod]'},
5767        'payload': {'key': 'properties.payload', 'type': '[AnalysisData]'},
5768        'non_correlated_detectors': {'key': 'properties.nonCorrelatedDetectors', 'type': '[DetectorDefinition]'},
5769    }
5770
5771    def __init__(
5772        self,
5773        **kwargs
5774    ):
5775        super(DiagnosticAnalysis, self).__init__(**kwargs)
5776        self.start_time = kwargs.get('start_time', None)
5777        self.end_time = kwargs.get('end_time', None)
5778        self.abnormal_time_periods = kwargs.get('abnormal_time_periods', None)
5779        self.payload = kwargs.get('payload', None)
5780        self.non_correlated_detectors = kwargs.get('non_correlated_detectors', None)
5781
5782
5783class DiagnosticAnalysisCollection(msrest.serialization.Model):
5784    """Collection of Diagnostic Analyses.
5785
5786    Variables are only populated by the server, and will be ignored when sending a request.
5787
5788    All required parameters must be populated in order to send to Azure.
5789
5790    :param value: Required. Collection of resources.
5791    :type value: list[~azure.mgmt.web.v2020_09_01.models.AnalysisDefinition]
5792    :ivar next_link: Link to next page of resources.
5793    :vartype next_link: str
5794    """
5795
5796    _validation = {
5797        'value': {'required': True},
5798        'next_link': {'readonly': True},
5799    }
5800
5801    _attribute_map = {
5802        'value': {'key': 'value', 'type': '[AnalysisDefinition]'},
5803        'next_link': {'key': 'nextLink', 'type': 'str'},
5804    }
5805
5806    def __init__(
5807        self,
5808        **kwargs
5809    ):
5810        super(DiagnosticAnalysisCollection, self).__init__(**kwargs)
5811        self.value = kwargs['value']
5812        self.next_link = None
5813
5814
5815class DiagnosticCategory(ProxyOnlyResource):
5816    """Class representing detector definition.
5817
5818    Variables are only populated by the server, and will be ignored when sending a request.
5819
5820    :ivar id: Resource Id.
5821    :vartype id: str
5822    :ivar name: Resource Name.
5823    :vartype name: str
5824    :param kind: Kind of resource.
5825    :type kind: str
5826    :ivar type: Resource type.
5827    :vartype type: str
5828    :ivar system_data: The system metadata relating to this resource.
5829    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5830    :ivar description: Description of the diagnostic category.
5831    :vartype description: str
5832    """
5833
5834    _validation = {
5835        'id': {'readonly': True},
5836        'name': {'readonly': True},
5837        'type': {'readonly': True},
5838        'system_data': {'readonly': True},
5839        'description': {'readonly': True},
5840    }
5841
5842    _attribute_map = {
5843        'id': {'key': 'id', 'type': 'str'},
5844        'name': {'key': 'name', 'type': 'str'},
5845        'kind': {'key': 'kind', 'type': 'str'},
5846        'type': {'key': 'type', 'type': 'str'},
5847        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5848        'description': {'key': 'properties.description', 'type': 'str'},
5849    }
5850
5851    def __init__(
5852        self,
5853        **kwargs
5854    ):
5855        super(DiagnosticCategory, self).__init__(**kwargs)
5856        self.description = None
5857
5858
5859class DiagnosticCategoryCollection(msrest.serialization.Model):
5860    """Collection of Diagnostic Categories.
5861
5862    Variables are only populated by the server, and will be ignored when sending a request.
5863
5864    All required parameters must be populated in order to send to Azure.
5865
5866    :param value: Required. Collection of resources.
5867    :type value: list[~azure.mgmt.web.v2020_09_01.models.DiagnosticCategory]
5868    :ivar next_link: Link to next page of resources.
5869    :vartype next_link: str
5870    """
5871
5872    _validation = {
5873        'value': {'required': True},
5874        'next_link': {'readonly': True},
5875    }
5876
5877    _attribute_map = {
5878        'value': {'key': 'value', 'type': '[DiagnosticCategory]'},
5879        'next_link': {'key': 'nextLink', 'type': 'str'},
5880    }
5881
5882    def __init__(
5883        self,
5884        **kwargs
5885    ):
5886        super(DiagnosticCategoryCollection, self).__init__(**kwargs)
5887        self.value = kwargs['value']
5888        self.next_link = None
5889
5890
5891class DiagnosticData(msrest.serialization.Model):
5892    """Set of data with rendering instructions.
5893
5894    :param table: Data in table form.
5895    :type table: ~azure.mgmt.web.v2020_09_01.models.DataTableResponseObject
5896    :param rendering_properties: Properties that describe how the table should be rendered.
5897    :type rendering_properties: ~azure.mgmt.web.v2020_09_01.models.Rendering
5898    """
5899
5900    _attribute_map = {
5901        'table': {'key': 'table', 'type': 'DataTableResponseObject'},
5902        'rendering_properties': {'key': 'renderingProperties', 'type': 'Rendering'},
5903    }
5904
5905    def __init__(
5906        self,
5907        **kwargs
5908    ):
5909        super(DiagnosticData, self).__init__(**kwargs)
5910        self.table = kwargs.get('table', None)
5911        self.rendering_properties = kwargs.get('rendering_properties', None)
5912
5913
5914class DiagnosticDetectorCollection(msrest.serialization.Model):
5915    """Collection of Diagnostic Detectors.
5916
5917    Variables are only populated by the server, and will be ignored when sending a request.
5918
5919    All required parameters must be populated in order to send to Azure.
5920
5921    :param value: Required. Collection of resources.
5922    :type value: list[~azure.mgmt.web.v2020_09_01.models.DetectorDefinition]
5923    :ivar next_link: Link to next page of resources.
5924    :vartype next_link: str
5925    """
5926
5927    _validation = {
5928        'value': {'required': True},
5929        'next_link': {'readonly': True},
5930    }
5931
5932    _attribute_map = {
5933        'value': {'key': 'value', 'type': '[DetectorDefinition]'},
5934        'next_link': {'key': 'nextLink', 'type': 'str'},
5935    }
5936
5937    def __init__(
5938        self,
5939        **kwargs
5940    ):
5941        super(DiagnosticDetectorCollection, self).__init__(**kwargs)
5942        self.value = kwargs['value']
5943        self.next_link = None
5944
5945
5946class DiagnosticDetectorResponse(ProxyOnlyResource):
5947    """Class representing Response from Diagnostic Detectors.
5948
5949    Variables are only populated by the server, and will be ignored when sending a request.
5950
5951    :ivar id: Resource Id.
5952    :vartype id: str
5953    :ivar name: Resource Name.
5954    :vartype name: str
5955    :param kind: Kind of resource.
5956    :type kind: str
5957    :ivar type: Resource type.
5958    :vartype type: str
5959    :ivar system_data: The system metadata relating to this resource.
5960    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
5961    :param start_time: Start time of the period.
5962    :type start_time: ~datetime.datetime
5963    :param end_time: End time of the period.
5964    :type end_time: ~datetime.datetime
5965    :param issue_detected: Flag representing Issue was detected.
5966    :type issue_detected: bool
5967    :param detector_definition: Detector's definition.
5968    :type detector_definition: ~azure.mgmt.web.v2020_09_01.models.DetectorDefinition
5969    :param metrics: Metrics provided by the detector.
5970    :type metrics: list[~azure.mgmt.web.v2020_09_01.models.DiagnosticMetricSet]
5971    :param abnormal_time_periods: List of Correlated events found by the detector.
5972    :type abnormal_time_periods:
5973     list[~azure.mgmt.web.v2020_09_01.models.DetectorAbnormalTimePeriod]
5974    :param data: Additional Data that detector wants to send.
5975    :type data: list[list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]]
5976    :param response_meta_data: Meta Data.
5977    :type response_meta_data: ~azure.mgmt.web.v2020_09_01.models.ResponseMetaData
5978    """
5979
5980    _validation = {
5981        'id': {'readonly': True},
5982        'name': {'readonly': True},
5983        'type': {'readonly': True},
5984        'system_data': {'readonly': True},
5985    }
5986
5987    _attribute_map = {
5988        'id': {'key': 'id', 'type': 'str'},
5989        'name': {'key': 'name', 'type': 'str'},
5990        'kind': {'key': 'kind', 'type': 'str'},
5991        'type': {'key': 'type', 'type': 'str'},
5992        'system_data': {'key': 'systemData', 'type': 'SystemData'},
5993        'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'},
5994        'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'},
5995        'issue_detected': {'key': 'properties.issueDetected', 'type': 'bool'},
5996        'detector_definition': {'key': 'properties.detectorDefinition', 'type': 'DetectorDefinition'},
5997        'metrics': {'key': 'properties.metrics', 'type': '[DiagnosticMetricSet]'},
5998        'abnormal_time_periods': {'key': 'properties.abnormalTimePeriods', 'type': '[DetectorAbnormalTimePeriod]'},
5999        'data': {'key': 'properties.data', 'type': '[[NameValuePair]]'},
6000        'response_meta_data': {'key': 'properties.responseMetaData', 'type': 'ResponseMetaData'},
6001    }
6002
6003    def __init__(
6004        self,
6005        **kwargs
6006    ):
6007        super(DiagnosticDetectorResponse, self).__init__(**kwargs)
6008        self.start_time = kwargs.get('start_time', None)
6009        self.end_time = kwargs.get('end_time', None)
6010        self.issue_detected = kwargs.get('issue_detected', None)
6011        self.detector_definition = kwargs.get('detector_definition', None)
6012        self.metrics = kwargs.get('metrics', None)
6013        self.abnormal_time_periods = kwargs.get('abnormal_time_periods', None)
6014        self.data = kwargs.get('data', None)
6015        self.response_meta_data = kwargs.get('response_meta_data', None)
6016
6017
6018class DiagnosticMetricSample(msrest.serialization.Model):
6019    """Class representing Diagnostic Metric.
6020
6021    :param timestamp: Time at which metric is measured.
6022    :type timestamp: ~datetime.datetime
6023    :param role_instance: Role Instance. Null if this counter is not per instance
6024     This is returned and should be whichever instance name we desire to be returned
6025     i.e. CPU and Memory return RDWORKERNAME (LargeDed..._IN_0)
6026     where RDWORKERNAME is Machine name below and RoleInstance name in parenthesis.
6027    :type role_instance: str
6028    :param total: Total value of the metric. If multiple measurements are made this will have sum
6029     of all.
6030    :type total: float
6031    :param maximum: Maximum of the metric sampled during the time period.
6032    :type maximum: float
6033    :param minimum: Minimum of the metric sampled during the time period.
6034    :type minimum: float
6035    :param is_aggregated: Whether the values are aggregates across all workers or not.
6036    :type is_aggregated: bool
6037    """
6038
6039    _attribute_map = {
6040        'timestamp': {'key': 'timestamp', 'type': 'iso-8601'},
6041        'role_instance': {'key': 'roleInstance', 'type': 'str'},
6042        'total': {'key': 'total', 'type': 'float'},
6043        'maximum': {'key': 'maximum', 'type': 'float'},
6044        'minimum': {'key': 'minimum', 'type': 'float'},
6045        'is_aggregated': {'key': 'isAggregated', 'type': 'bool'},
6046    }
6047
6048    def __init__(
6049        self,
6050        **kwargs
6051    ):
6052        super(DiagnosticMetricSample, self).__init__(**kwargs)
6053        self.timestamp = kwargs.get('timestamp', None)
6054        self.role_instance = kwargs.get('role_instance', None)
6055        self.total = kwargs.get('total', None)
6056        self.maximum = kwargs.get('maximum', None)
6057        self.minimum = kwargs.get('minimum', None)
6058        self.is_aggregated = kwargs.get('is_aggregated', None)
6059
6060
6061class DiagnosticMetricSet(msrest.serialization.Model):
6062    """Class representing Diagnostic Metric information.
6063
6064    :param name: Name of the metric.
6065    :type name: str
6066    :param unit: Metric's unit.
6067    :type unit: str
6068    :param start_time: Start time of the period.
6069    :type start_time: ~datetime.datetime
6070    :param end_time: End time of the period.
6071    :type end_time: ~datetime.datetime
6072    :param time_grain: Presented time grain. Supported grains at the moment are PT1M, PT1H, P1D.
6073    :type time_grain: str
6074    :param values: Collection of metric values for the selected period based on the
6075     {Microsoft.Web.Hosting.Administration.DiagnosticMetricSet.TimeGrain}.
6076    :type values: list[~azure.mgmt.web.v2020_09_01.models.DiagnosticMetricSample]
6077    """
6078
6079    _attribute_map = {
6080        'name': {'key': 'name', 'type': 'str'},
6081        'unit': {'key': 'unit', 'type': 'str'},
6082        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
6083        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
6084        'time_grain': {'key': 'timeGrain', 'type': 'str'},
6085        'values': {'key': 'values', 'type': '[DiagnosticMetricSample]'},
6086    }
6087
6088    def __init__(
6089        self,
6090        **kwargs
6091    ):
6092        super(DiagnosticMetricSet, self).__init__(**kwargs)
6093        self.name = kwargs.get('name', None)
6094        self.unit = kwargs.get('unit', None)
6095        self.start_time = kwargs.get('start_time', None)
6096        self.end_time = kwargs.get('end_time', None)
6097        self.time_grain = kwargs.get('time_grain', None)
6098        self.values = kwargs.get('values', None)
6099
6100
6101class Dimension(msrest.serialization.Model):
6102    """Dimension of a resource metric. For e.g. instance specific HTTP requests for a web app,
6103where instance name is dimension of the metric HTTP request.
6104
6105    :param name:
6106    :type name: str
6107    :param display_name:
6108    :type display_name: str
6109    :param internal_name:
6110    :type internal_name: str
6111    :param to_be_exported_for_shoebox:
6112    :type to_be_exported_for_shoebox: bool
6113    """
6114
6115    _attribute_map = {
6116        'name': {'key': 'name', 'type': 'str'},
6117        'display_name': {'key': 'displayName', 'type': 'str'},
6118        'internal_name': {'key': 'internalName', 'type': 'str'},
6119        'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'},
6120    }
6121
6122    def __init__(
6123        self,
6124        **kwargs
6125    ):
6126        super(Dimension, self).__init__(**kwargs)
6127        self.name = kwargs.get('name', None)
6128        self.display_name = kwargs.get('display_name', None)
6129        self.internal_name = kwargs.get('internal_name', None)
6130        self.to_be_exported_for_shoebox = kwargs.get('to_be_exported_for_shoebox', None)
6131
6132
6133class Domain(Resource):
6134    """Information about a domain.
6135
6136    Variables are only populated by the server, and will be ignored when sending a request.
6137
6138    All required parameters must be populated in order to send to Azure.
6139
6140    :ivar id: Resource Id.
6141    :vartype id: str
6142    :ivar name: Resource Name.
6143    :vartype name: str
6144    :param kind: Kind of resource.
6145    :type kind: str
6146    :param location: Required. Resource Location.
6147    :type location: str
6148    :ivar type: Resource type.
6149    :vartype type: str
6150    :param tags: A set of tags. Resource tags.
6151    :type tags: dict[str, str]
6152    :ivar system_data: The system metadata relating to this resource.
6153    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6154    :param contact_admin: Administrative contact.
6155    :type contact_admin: ~azure.mgmt.web.v2020_09_01.models.Contact
6156    :param contact_billing: Billing contact.
6157    :type contact_billing: ~azure.mgmt.web.v2020_09_01.models.Contact
6158    :param contact_registrant: Registrant contact.
6159    :type contact_registrant: ~azure.mgmt.web.v2020_09_01.models.Contact
6160    :param contact_tech: Technical contact.
6161    :type contact_tech: ~azure.mgmt.web.v2020_09_01.models.Contact
6162    :ivar registration_status: Domain registration status. Possible values include: "Active",
6163     "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held",
6164     "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown",
6165     "Unlocked", "Unparked", "Updated", "JsonConverterFailed".
6166    :vartype registration_status: str or ~azure.mgmt.web.v2020_09_01.models.DomainStatus
6167    :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded",
6168     "Failed", "Canceled", "InProgress", "Deleting".
6169    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
6170    :ivar name_servers: Name servers.
6171    :vartype name_servers: list[str]
6172    :param privacy: :code:`<code>true</code>` if domain privacy is enabled for this domain;
6173     otherwise, :code:`<code>false</code>`.
6174    :type privacy: bool
6175    :ivar created_time: Domain creation timestamp.
6176    :vartype created_time: ~datetime.datetime
6177    :ivar expiration_time: Domain expiration timestamp.
6178    :vartype expiration_time: ~datetime.datetime
6179    :ivar last_renewed_time: Timestamp when the domain was renewed last time.
6180    :vartype last_renewed_time: ~datetime.datetime
6181    :param auto_renew: :code:`<code>true</code>` if the domain should be automatically renewed;
6182     otherwise, :code:`<code>false</code>`.
6183    :type auto_renew: bool
6184    :ivar ready_for_dns_record_management: :code:`<code>true</code>` if Azure can assign this
6185     domain to App Service apps; otherwise, :code:`<code>false</code>`. This value will be
6186     :code:`<code>true</code>` if domain registration status is active and
6187      it is hosted on name servers Azure has programmatic access to.
6188    :vartype ready_for_dns_record_management: bool
6189    :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure
6190     resources.
6191    :vartype managed_host_names: list[~azure.mgmt.web.v2020_09_01.models.HostName]
6192    :param consent: Legal agreement consent.
6193    :type consent: ~azure.mgmt.web.v2020_09_01.models.DomainPurchaseConsent
6194    :ivar domain_not_renewable_reasons: Reasons why domain is not renewable.
6195    :vartype domain_not_renewable_reasons: list[str or
6196     ~azure.mgmt.web.v2020_09_01.models.DomainPropertiesDomainNotRenewableReasonsItem]
6197    :param dns_type: Current DNS type. Possible values include: "AzureDns",
6198     "DefaultDomainRegistrarDns".
6199    :type dns_type: str or ~azure.mgmt.web.v2020_09_01.models.DnsType
6200    :param dns_zone_id: Azure DNS Zone to use.
6201    :type dns_zone_id: str
6202    :param target_dns_type: Target DNS type (would be used for migration). Possible values include:
6203     "AzureDns", "DefaultDomainRegistrarDns".
6204    :type target_dns_type: str or ~azure.mgmt.web.v2020_09_01.models.DnsType
6205    :param auth_code:
6206    :type auth_code: str
6207    """
6208
6209    _validation = {
6210        'id': {'readonly': True},
6211        'name': {'readonly': True},
6212        'location': {'required': True},
6213        'type': {'readonly': True},
6214        'system_data': {'readonly': True},
6215        'registration_status': {'readonly': True},
6216        'provisioning_state': {'readonly': True},
6217        'name_servers': {'readonly': True},
6218        'created_time': {'readonly': True},
6219        'expiration_time': {'readonly': True},
6220        'last_renewed_time': {'readonly': True},
6221        'ready_for_dns_record_management': {'readonly': True},
6222        'managed_host_names': {'readonly': True},
6223        'domain_not_renewable_reasons': {'readonly': True},
6224    }
6225
6226    _attribute_map = {
6227        'id': {'key': 'id', 'type': 'str'},
6228        'name': {'key': 'name', 'type': 'str'},
6229        'kind': {'key': 'kind', 'type': 'str'},
6230        'location': {'key': 'location', 'type': 'str'},
6231        'type': {'key': 'type', 'type': 'str'},
6232        'tags': {'key': 'tags', 'type': '{str}'},
6233        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6234        'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'},
6235        'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'},
6236        'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'},
6237        'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'},
6238        'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'},
6239        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
6240        'name_servers': {'key': 'properties.nameServers', 'type': '[str]'},
6241        'privacy': {'key': 'properties.privacy', 'type': 'bool'},
6242        'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'},
6243        'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'},
6244        'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'},
6245        'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'},
6246        'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'},
6247        'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'},
6248        'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'},
6249        'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'},
6250        'dns_type': {'key': 'properties.dnsType', 'type': 'str'},
6251        'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'},
6252        'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'},
6253        'auth_code': {'key': 'properties.authCode', 'type': 'str'},
6254    }
6255
6256    def __init__(
6257        self,
6258        **kwargs
6259    ):
6260        super(Domain, self).__init__(**kwargs)
6261        self.contact_admin = kwargs.get('contact_admin', None)
6262        self.contact_billing = kwargs.get('contact_billing', None)
6263        self.contact_registrant = kwargs.get('contact_registrant', None)
6264        self.contact_tech = kwargs.get('contact_tech', None)
6265        self.registration_status = None
6266        self.provisioning_state = None
6267        self.name_servers = None
6268        self.privacy = kwargs.get('privacy', None)
6269        self.created_time = None
6270        self.expiration_time = None
6271        self.last_renewed_time = None
6272        self.auto_renew = kwargs.get('auto_renew', True)
6273        self.ready_for_dns_record_management = None
6274        self.managed_host_names = None
6275        self.consent = kwargs.get('consent', None)
6276        self.domain_not_renewable_reasons = None
6277        self.dns_type = kwargs.get('dns_type', None)
6278        self.dns_zone_id = kwargs.get('dns_zone_id', None)
6279        self.target_dns_type = kwargs.get('target_dns_type', None)
6280        self.auth_code = kwargs.get('auth_code', None)
6281
6282
6283class DomainAvailabilityCheckResult(msrest.serialization.Model):
6284    """Domain availability check result.
6285
6286    :param name: Name of the domain.
6287    :type name: str
6288    :param available: :code:`<code>true</code>` if domain can be purchased using CreateDomain API;
6289     otherwise, :code:`<code>false</code>`.
6290    :type available: bool
6291    :param domain_type: Valid values are Regular domain: Azure will charge the full price of domain
6292     registration, SoftDeleted: Purchasing this domain will simply restore it and this operation
6293     will not cost anything. Possible values include: "Regular", "SoftDeleted".
6294    :type domain_type: str or ~azure.mgmt.web.v2020_09_01.models.DomainType
6295    """
6296
6297    _attribute_map = {
6298        'name': {'key': 'name', 'type': 'str'},
6299        'available': {'key': 'available', 'type': 'bool'},
6300        'domain_type': {'key': 'domainType', 'type': 'str'},
6301    }
6302
6303    def __init__(
6304        self,
6305        **kwargs
6306    ):
6307        super(DomainAvailabilityCheckResult, self).__init__(**kwargs)
6308        self.name = kwargs.get('name', None)
6309        self.available = kwargs.get('available', None)
6310        self.domain_type = kwargs.get('domain_type', None)
6311
6312
6313class DomainCollection(msrest.serialization.Model):
6314    """Collection of domains.
6315
6316    Variables are only populated by the server, and will be ignored when sending a request.
6317
6318    All required parameters must be populated in order to send to Azure.
6319
6320    :param value: Required. Collection of resources.
6321    :type value: list[~azure.mgmt.web.v2020_09_01.models.Domain]
6322    :ivar next_link: Link to next page of resources.
6323    :vartype next_link: str
6324    """
6325
6326    _validation = {
6327        'value': {'required': True},
6328        'next_link': {'readonly': True},
6329    }
6330
6331    _attribute_map = {
6332        'value': {'key': 'value', 'type': '[Domain]'},
6333        'next_link': {'key': 'nextLink', 'type': 'str'},
6334    }
6335
6336    def __init__(
6337        self,
6338        **kwargs
6339    ):
6340        super(DomainCollection, self).__init__(**kwargs)
6341        self.value = kwargs['value']
6342        self.next_link = None
6343
6344
6345class DomainControlCenterSsoRequest(msrest.serialization.Model):
6346    """Single sign-on request information for domain management.
6347
6348    Variables are only populated by the server, and will be ignored when sending a request.
6349
6350    :ivar url: URL where the single sign-on request is to be made.
6351    :vartype url: str
6352    :ivar post_parameter_key: Post parameter key.
6353    :vartype post_parameter_key: str
6354    :ivar post_parameter_value: Post parameter value. Client should use
6355     'application/x-www-form-urlencoded' encoding for this value.
6356    :vartype post_parameter_value: str
6357    """
6358
6359    _validation = {
6360        'url': {'readonly': True},
6361        'post_parameter_key': {'readonly': True},
6362        'post_parameter_value': {'readonly': True},
6363    }
6364
6365    _attribute_map = {
6366        'url': {'key': 'url', 'type': 'str'},
6367        'post_parameter_key': {'key': 'postParameterKey', 'type': 'str'},
6368        'post_parameter_value': {'key': 'postParameterValue', 'type': 'str'},
6369    }
6370
6371    def __init__(
6372        self,
6373        **kwargs
6374    ):
6375        super(DomainControlCenterSsoRequest, self).__init__(**kwargs)
6376        self.url = None
6377        self.post_parameter_key = None
6378        self.post_parameter_value = None
6379
6380
6381class DomainOwnershipIdentifier(ProxyOnlyResource):
6382    """Domain ownership Identifier.
6383
6384    Variables are only populated by the server, and will be ignored when sending a request.
6385
6386    :ivar id: Resource Id.
6387    :vartype id: str
6388    :ivar name: Resource Name.
6389    :vartype name: str
6390    :param kind: Kind of resource.
6391    :type kind: str
6392    :ivar type: Resource type.
6393    :vartype type: str
6394    :ivar system_data: The system metadata relating to this resource.
6395    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6396    :param ownership_id: Ownership Id.
6397    :type ownership_id: str
6398    """
6399
6400    _validation = {
6401        'id': {'readonly': True},
6402        'name': {'readonly': True},
6403        'type': {'readonly': True},
6404        'system_data': {'readonly': True},
6405    }
6406
6407    _attribute_map = {
6408        'id': {'key': 'id', 'type': 'str'},
6409        'name': {'key': 'name', 'type': 'str'},
6410        'kind': {'key': 'kind', 'type': 'str'},
6411        'type': {'key': 'type', 'type': 'str'},
6412        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6413        'ownership_id': {'key': 'properties.ownershipId', 'type': 'str'},
6414    }
6415
6416    def __init__(
6417        self,
6418        **kwargs
6419    ):
6420        super(DomainOwnershipIdentifier, self).__init__(**kwargs)
6421        self.ownership_id = kwargs.get('ownership_id', None)
6422
6423
6424class DomainOwnershipIdentifierCollection(msrest.serialization.Model):
6425    """Collection of domain ownership identifiers.
6426
6427    Variables are only populated by the server, and will be ignored when sending a request.
6428
6429    All required parameters must be populated in order to send to Azure.
6430
6431    :param value: Required. Collection of resources.
6432    :type value: list[~azure.mgmt.web.v2020_09_01.models.DomainOwnershipIdentifier]
6433    :ivar next_link: Link to next page of resources.
6434    :vartype next_link: str
6435    """
6436
6437    _validation = {
6438        'value': {'required': True},
6439        'next_link': {'readonly': True},
6440    }
6441
6442    _attribute_map = {
6443        'value': {'key': 'value', 'type': '[DomainOwnershipIdentifier]'},
6444        'next_link': {'key': 'nextLink', 'type': 'str'},
6445    }
6446
6447    def __init__(
6448        self,
6449        **kwargs
6450    ):
6451        super(DomainOwnershipIdentifierCollection, self).__init__(**kwargs)
6452        self.value = kwargs['value']
6453        self.next_link = None
6454
6455
6456class DomainPatchResource(ProxyOnlyResource):
6457    """ARM resource for a domain.
6458
6459    Variables are only populated by the server, and will be ignored when sending a request.
6460
6461    :ivar id: Resource Id.
6462    :vartype id: str
6463    :ivar name: Resource Name.
6464    :vartype name: str
6465    :param kind: Kind of resource.
6466    :type kind: str
6467    :ivar type: Resource type.
6468    :vartype type: str
6469    :ivar system_data: The system metadata relating to this resource.
6470    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6471    :param contact_admin: Administrative contact.
6472    :type contact_admin: ~azure.mgmt.web.v2020_09_01.models.Contact
6473    :param contact_billing: Billing contact.
6474    :type contact_billing: ~azure.mgmt.web.v2020_09_01.models.Contact
6475    :param contact_registrant: Registrant contact.
6476    :type contact_registrant: ~azure.mgmt.web.v2020_09_01.models.Contact
6477    :param contact_tech: Technical contact.
6478    :type contact_tech: ~azure.mgmt.web.v2020_09_01.models.Contact
6479    :ivar registration_status: Domain registration status. Possible values include: "Active",
6480     "Awaiting", "Cancelled", "Confiscated", "Disabled", "Excluded", "Expired", "Failed", "Held",
6481     "Locked", "Parked", "Pending", "Reserved", "Reverted", "Suspended", "Transferred", "Unknown",
6482     "Unlocked", "Unparked", "Updated", "JsonConverterFailed".
6483    :vartype registration_status: str or ~azure.mgmt.web.v2020_09_01.models.DomainStatus
6484    :ivar provisioning_state: Domain provisioning state. Possible values include: "Succeeded",
6485     "Failed", "Canceled", "InProgress", "Deleting".
6486    :vartype provisioning_state: str or ~azure.mgmt.web.v2020_09_01.models.ProvisioningState
6487    :ivar name_servers: Name servers.
6488    :vartype name_servers: list[str]
6489    :param privacy: :code:`<code>true</code>` if domain privacy is enabled for this domain;
6490     otherwise, :code:`<code>false</code>`.
6491    :type privacy: bool
6492    :ivar created_time: Domain creation timestamp.
6493    :vartype created_time: ~datetime.datetime
6494    :ivar expiration_time: Domain expiration timestamp.
6495    :vartype expiration_time: ~datetime.datetime
6496    :ivar last_renewed_time: Timestamp when the domain was renewed last time.
6497    :vartype last_renewed_time: ~datetime.datetime
6498    :param auto_renew: :code:`<code>true</code>` if the domain should be automatically renewed;
6499     otherwise, :code:`<code>false</code>`.
6500    :type auto_renew: bool
6501    :ivar ready_for_dns_record_management: :code:`<code>true</code>` if Azure can assign this
6502     domain to App Service apps; otherwise, :code:`<code>false</code>`. This value will be
6503     :code:`<code>true</code>` if domain registration status is active and
6504      it is hosted on name servers Azure has programmatic access to.
6505    :vartype ready_for_dns_record_management: bool
6506    :ivar managed_host_names: All hostnames derived from the domain and assigned to Azure
6507     resources.
6508    :vartype managed_host_names: list[~azure.mgmt.web.v2020_09_01.models.HostName]
6509    :param consent: Legal agreement consent.
6510    :type consent: ~azure.mgmt.web.v2020_09_01.models.DomainPurchaseConsent
6511    :ivar domain_not_renewable_reasons: Reasons why domain is not renewable.
6512    :vartype domain_not_renewable_reasons: list[str or
6513     ~azure.mgmt.web.v2020_09_01.models.DomainPatchResourcePropertiesDomainNotRenewableReasonsItem]
6514    :param dns_type: Current DNS type. Possible values include: "AzureDns",
6515     "DefaultDomainRegistrarDns".
6516    :type dns_type: str or ~azure.mgmt.web.v2020_09_01.models.DnsType
6517    :param dns_zone_id: Azure DNS Zone to use.
6518    :type dns_zone_id: str
6519    :param target_dns_type: Target DNS type (would be used for migration). Possible values include:
6520     "AzureDns", "DefaultDomainRegistrarDns".
6521    :type target_dns_type: str or ~azure.mgmt.web.v2020_09_01.models.DnsType
6522    :param auth_code:
6523    :type auth_code: str
6524    """
6525
6526    _validation = {
6527        'id': {'readonly': True},
6528        'name': {'readonly': True},
6529        'type': {'readonly': True},
6530        'system_data': {'readonly': True},
6531        'registration_status': {'readonly': True},
6532        'provisioning_state': {'readonly': True},
6533        'name_servers': {'readonly': True},
6534        'created_time': {'readonly': True},
6535        'expiration_time': {'readonly': True},
6536        'last_renewed_time': {'readonly': True},
6537        'ready_for_dns_record_management': {'readonly': True},
6538        'managed_host_names': {'readonly': True},
6539        'domain_not_renewable_reasons': {'readonly': True},
6540    }
6541
6542    _attribute_map = {
6543        'id': {'key': 'id', 'type': 'str'},
6544        'name': {'key': 'name', 'type': 'str'},
6545        'kind': {'key': 'kind', 'type': 'str'},
6546        'type': {'key': 'type', 'type': 'str'},
6547        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6548        'contact_admin': {'key': 'properties.contactAdmin', 'type': 'Contact'},
6549        'contact_billing': {'key': 'properties.contactBilling', 'type': 'Contact'},
6550        'contact_registrant': {'key': 'properties.contactRegistrant', 'type': 'Contact'},
6551        'contact_tech': {'key': 'properties.contactTech', 'type': 'Contact'},
6552        'registration_status': {'key': 'properties.registrationStatus', 'type': 'str'},
6553        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
6554        'name_servers': {'key': 'properties.nameServers', 'type': '[str]'},
6555        'privacy': {'key': 'properties.privacy', 'type': 'bool'},
6556        'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'},
6557        'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'},
6558        'last_renewed_time': {'key': 'properties.lastRenewedTime', 'type': 'iso-8601'},
6559        'auto_renew': {'key': 'properties.autoRenew', 'type': 'bool'},
6560        'ready_for_dns_record_management': {'key': 'properties.readyForDnsRecordManagement', 'type': 'bool'},
6561        'managed_host_names': {'key': 'properties.managedHostNames', 'type': '[HostName]'},
6562        'consent': {'key': 'properties.consent', 'type': 'DomainPurchaseConsent'},
6563        'domain_not_renewable_reasons': {'key': 'properties.domainNotRenewableReasons', 'type': '[str]'},
6564        'dns_type': {'key': 'properties.dnsType', 'type': 'str'},
6565        'dns_zone_id': {'key': 'properties.dnsZoneId', 'type': 'str'},
6566        'target_dns_type': {'key': 'properties.targetDnsType', 'type': 'str'},
6567        'auth_code': {'key': 'properties.authCode', 'type': 'str'},
6568    }
6569
6570    def __init__(
6571        self,
6572        **kwargs
6573    ):
6574        super(DomainPatchResource, self).__init__(**kwargs)
6575        self.contact_admin = kwargs.get('contact_admin', None)
6576        self.contact_billing = kwargs.get('contact_billing', None)
6577        self.contact_registrant = kwargs.get('contact_registrant', None)
6578        self.contact_tech = kwargs.get('contact_tech', None)
6579        self.registration_status = None
6580        self.provisioning_state = None
6581        self.name_servers = None
6582        self.privacy = kwargs.get('privacy', None)
6583        self.created_time = None
6584        self.expiration_time = None
6585        self.last_renewed_time = None
6586        self.auto_renew = kwargs.get('auto_renew', True)
6587        self.ready_for_dns_record_management = None
6588        self.managed_host_names = None
6589        self.consent = kwargs.get('consent', None)
6590        self.domain_not_renewable_reasons = None
6591        self.dns_type = kwargs.get('dns_type', None)
6592        self.dns_zone_id = kwargs.get('dns_zone_id', None)
6593        self.target_dns_type = kwargs.get('target_dns_type', None)
6594        self.auth_code = kwargs.get('auth_code', None)
6595
6596
6597class DomainPurchaseConsent(msrest.serialization.Model):
6598    """Domain purchase consent object, representing acceptance of applicable legal agreements.
6599
6600    :param agreement_keys: List of applicable legal agreement keys. This list can be retrieved
6601     using ListLegalAgreements API under :code:`<code>TopLevelDomain</code>` resource.
6602    :type agreement_keys: list[str]
6603    :param agreed_by: Client IP address.
6604    :type agreed_by: str
6605    :param agreed_at: Timestamp when the agreements were accepted.
6606    :type agreed_at: ~datetime.datetime
6607    """
6608
6609    _attribute_map = {
6610        'agreement_keys': {'key': 'agreementKeys', 'type': '[str]'},
6611        'agreed_by': {'key': 'agreedBy', 'type': 'str'},
6612        'agreed_at': {'key': 'agreedAt', 'type': 'iso-8601'},
6613    }
6614
6615    def __init__(
6616        self,
6617        **kwargs
6618    ):
6619        super(DomainPurchaseConsent, self).__init__(**kwargs)
6620        self.agreement_keys = kwargs.get('agreement_keys', None)
6621        self.agreed_by = kwargs.get('agreed_by', None)
6622        self.agreed_at = kwargs.get('agreed_at', None)
6623
6624
6625class DomainRecommendationSearchParameters(msrest.serialization.Model):
6626    """Domain recommendation search parameters.
6627
6628    :param keywords: Keywords to be used for generating domain recommendations.
6629    :type keywords: str
6630    :param max_domain_recommendations: Maximum number of recommendations.
6631    :type max_domain_recommendations: int
6632    """
6633
6634    _attribute_map = {
6635        'keywords': {'key': 'keywords', 'type': 'str'},
6636        'max_domain_recommendations': {'key': 'maxDomainRecommendations', 'type': 'int'},
6637    }
6638
6639    def __init__(
6640        self,
6641        **kwargs
6642    ):
6643        super(DomainRecommendationSearchParameters, self).__init__(**kwargs)
6644        self.keywords = kwargs.get('keywords', None)
6645        self.max_domain_recommendations = kwargs.get('max_domain_recommendations', None)
6646
6647
6648class EnabledConfig(msrest.serialization.Model):
6649    """Enabled configuration.
6650
6651    :param enabled: True if configuration is enabled, false if it is disabled and null if
6652     configuration is not set.
6653    :type enabled: bool
6654    """
6655
6656    _attribute_map = {
6657        'enabled': {'key': 'enabled', 'type': 'bool'},
6658    }
6659
6660    def __init__(
6661        self,
6662        **kwargs
6663    ):
6664        super(EnabledConfig, self).__init__(**kwargs)
6665        self.enabled = kwargs.get('enabled', None)
6666
6667
6668class EndpointDependency(msrest.serialization.Model):
6669    """A domain name that a service is reached at, including details of the current connection status.
6670
6671    :param domain_name: The domain name of the dependency.
6672    :type domain_name: str
6673    :param endpoint_details: The IP Addresses and Ports used when connecting to DomainName.
6674    :type endpoint_details: list[~azure.mgmt.web.v2020_09_01.models.EndpointDetail]
6675    """
6676
6677    _attribute_map = {
6678        'domain_name': {'key': 'domainName', 'type': 'str'},
6679        'endpoint_details': {'key': 'endpointDetails', 'type': '[EndpointDetail]'},
6680    }
6681
6682    def __init__(
6683        self,
6684        **kwargs
6685    ):
6686        super(EndpointDependency, self).__init__(**kwargs)
6687        self.domain_name = kwargs.get('domain_name', None)
6688        self.endpoint_details = kwargs.get('endpoint_details', None)
6689
6690
6691class EndpointDetail(msrest.serialization.Model):
6692    """Current TCP connectivity information from the App Service Environment to a single endpoint.
6693
6694    :param ip_address: An IP Address that Domain Name currently resolves to.
6695    :type ip_address: str
6696    :param port: The port an endpoint is connected to.
6697    :type port: int
6698    :param latency: The time in milliseconds it takes for a TCP connection to be created from the
6699     App Service Environment to this IpAddress at this Port.
6700    :type latency: float
6701    :param is_accessible: Whether it is possible to create a TCP connection from the App Service
6702     Environment to this IpAddress at this Port.
6703    :type is_accessible: bool
6704    """
6705
6706    _attribute_map = {
6707        'ip_address': {'key': 'ipAddress', 'type': 'str'},
6708        'port': {'key': 'port', 'type': 'int'},
6709        'latency': {'key': 'latency', 'type': 'float'},
6710        'is_accessible': {'key': 'isAccessible', 'type': 'bool'},
6711    }
6712
6713    def __init__(
6714        self,
6715        **kwargs
6716    ):
6717        super(EndpointDetail, self).__init__(**kwargs)
6718        self.ip_address = kwargs.get('ip_address', None)
6719        self.port = kwargs.get('port', None)
6720        self.latency = kwargs.get('latency', None)
6721        self.is_accessible = kwargs.get('is_accessible', None)
6722
6723
6724class ErrorEntity(msrest.serialization.Model):
6725    """Body of the error response returned from the API.
6726
6727    :param extended_code: Type of error.
6728    :type extended_code: str
6729    :param message_template: Message template.
6730    :type message_template: str
6731    :param parameters: Parameters for the template.
6732    :type parameters: list[str]
6733    :param inner_errors: Inner errors.
6734    :type inner_errors: list[~azure.mgmt.web.v2020_09_01.models.ErrorEntity]
6735    :param code: Basic error code.
6736    :type code: str
6737    :param message: Any details of the error.
6738    :type message: str
6739    """
6740
6741    _attribute_map = {
6742        'extended_code': {'key': 'extendedCode', 'type': 'str'},
6743        'message_template': {'key': 'messageTemplate', 'type': 'str'},
6744        'parameters': {'key': 'parameters', 'type': '[str]'},
6745        'inner_errors': {'key': 'innerErrors', 'type': '[ErrorEntity]'},
6746        'code': {'key': 'code', 'type': 'str'},
6747        'message': {'key': 'message', 'type': 'str'},
6748    }
6749
6750    def __init__(
6751        self,
6752        **kwargs
6753    ):
6754        super(ErrorEntity, self).__init__(**kwargs)
6755        self.extended_code = kwargs.get('extended_code', None)
6756        self.message_template = kwargs.get('message_template', None)
6757        self.parameters = kwargs.get('parameters', None)
6758        self.inner_errors = kwargs.get('inner_errors', None)
6759        self.code = kwargs.get('code', None)
6760        self.message = kwargs.get('message', None)
6761
6762
6763class Experiments(msrest.serialization.Model):
6764    """Routing rules in production experiments.
6765
6766    :param ramp_up_rules: List of ramp-up rules.
6767    :type ramp_up_rules: list[~azure.mgmt.web.v2020_09_01.models.RampUpRule]
6768    """
6769
6770    _attribute_map = {
6771        'ramp_up_rules': {'key': 'rampUpRules', 'type': '[RampUpRule]'},
6772    }
6773
6774    def __init__(
6775        self,
6776        **kwargs
6777    ):
6778        super(Experiments, self).__init__(**kwargs)
6779        self.ramp_up_rules = kwargs.get('ramp_up_rules', None)
6780
6781
6782class Facebook(ProxyOnlyResource):
6783    """Facebook.
6784
6785    Variables are only populated by the server, and will be ignored when sending a request.
6786
6787    :ivar id: Resource Id.
6788    :vartype id: str
6789    :ivar name: Resource Name.
6790    :vartype name: str
6791    :param kind: Kind of resource.
6792    :type kind: str
6793    :ivar type: Resource type.
6794    :vartype type: str
6795    :ivar system_data: The system metadata relating to this resource.
6796    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6797    :param enabled:
6798    :type enabled: bool
6799    :param registration:
6800    :type registration: ~azure.mgmt.web.v2020_09_01.models.AppRegistration
6801    :param graph_api_version:
6802    :type graph_api_version: str
6803    :param login:
6804    :type login: ~azure.mgmt.web.v2020_09_01.models.LoginScopes
6805    """
6806
6807    _validation = {
6808        'id': {'readonly': True},
6809        'name': {'readonly': True},
6810        'type': {'readonly': True},
6811        'system_data': {'readonly': True},
6812    }
6813
6814    _attribute_map = {
6815        'id': {'key': 'id', 'type': 'str'},
6816        'name': {'key': 'name', 'type': 'str'},
6817        'kind': {'key': 'kind', 'type': 'str'},
6818        'type': {'key': 'type', 'type': 'str'},
6819        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6820        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
6821        'registration': {'key': 'properties.registration', 'type': 'AppRegistration'},
6822        'graph_api_version': {'key': 'properties.graphApiVersion', 'type': 'str'},
6823        'login': {'key': 'properties.login', 'type': 'LoginScopes'},
6824    }
6825
6826    def __init__(
6827        self,
6828        **kwargs
6829    ):
6830        super(Facebook, self).__init__(**kwargs)
6831        self.enabled = kwargs.get('enabled', None)
6832        self.registration = kwargs.get('registration', None)
6833        self.graph_api_version = kwargs.get('graph_api_version', None)
6834        self.login = kwargs.get('login', None)
6835
6836
6837class FileSystemApplicationLogsConfig(msrest.serialization.Model):
6838    """Application logs to file system configuration.
6839
6840    :param level: Log level. Possible values include: "Off", "Verbose", "Information", "Warning",
6841     "Error".
6842    :type level: str or ~azure.mgmt.web.v2020_09_01.models.LogLevel
6843    """
6844
6845    _attribute_map = {
6846        'level': {'key': 'level', 'type': 'str'},
6847    }
6848
6849    def __init__(
6850        self,
6851        **kwargs
6852    ):
6853        super(FileSystemApplicationLogsConfig, self).__init__(**kwargs)
6854        self.level = kwargs.get('level', None)
6855
6856
6857class FileSystemHttpLogsConfig(msrest.serialization.Model):
6858    """Http logs to file system configuration.
6859
6860    :param retention_in_mb: Maximum size in megabytes that http log files can use.
6861     When reached old log files will be removed to make space for new ones.
6862     Value can range between 25 and 100.
6863    :type retention_in_mb: int
6864    :param retention_in_days: Retention in days.
6865     Remove files older than X days.
6866     0 or lower means no retention.
6867    :type retention_in_days: int
6868    :param enabled: True if configuration is enabled, false if it is disabled and null if
6869     configuration is not set.
6870    :type enabled: bool
6871    """
6872
6873    _validation = {
6874        'retention_in_mb': {'maximum': 100, 'minimum': 25},
6875    }
6876
6877    _attribute_map = {
6878        'retention_in_mb': {'key': 'retentionInMb', 'type': 'int'},
6879        'retention_in_days': {'key': 'retentionInDays', 'type': 'int'},
6880        'enabled': {'key': 'enabled', 'type': 'bool'},
6881    }
6882
6883    def __init__(
6884        self,
6885        **kwargs
6886    ):
6887        super(FileSystemHttpLogsConfig, self).__init__(**kwargs)
6888        self.retention_in_mb = kwargs.get('retention_in_mb', None)
6889        self.retention_in_days = kwargs.get('retention_in_days', None)
6890        self.enabled = kwargs.get('enabled', None)
6891
6892
6893class FileSystemTokenStore(ProxyOnlyResource):
6894    """FileSystemTokenStore.
6895
6896    Variables are only populated by the server, and will be ignored when sending a request.
6897
6898    :ivar id: Resource Id.
6899    :vartype id: str
6900    :ivar name: Resource Name.
6901    :vartype name: str
6902    :param kind: Kind of resource.
6903    :type kind: str
6904    :ivar type: Resource type.
6905    :vartype type: str
6906    :ivar system_data: The system metadata relating to this resource.
6907    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6908    :param directory:
6909    :type directory: str
6910    """
6911
6912    _validation = {
6913        'id': {'readonly': True},
6914        'name': {'readonly': True},
6915        'type': {'readonly': True},
6916        'system_data': {'readonly': True},
6917    }
6918
6919    _attribute_map = {
6920        'id': {'key': 'id', 'type': 'str'},
6921        'name': {'key': 'name', 'type': 'str'},
6922        'kind': {'key': 'kind', 'type': 'str'},
6923        'type': {'key': 'type', 'type': 'str'},
6924        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6925        'directory': {'key': 'properties.directory', 'type': 'str'},
6926    }
6927
6928    def __init__(
6929        self,
6930        **kwargs
6931    ):
6932        super(FileSystemTokenStore, self).__init__(**kwargs)
6933        self.directory = kwargs.get('directory', None)
6934
6935
6936class ForwardProxy(ProxyOnlyResource):
6937    """ForwardProxy.
6938
6939    Variables are only populated by the server, and will be ignored when sending a request.
6940
6941    :ivar id: Resource Id.
6942    :vartype id: str
6943    :ivar name: Resource Name.
6944    :vartype name: str
6945    :param kind: Kind of resource.
6946    :type kind: str
6947    :ivar type: Resource type.
6948    :vartype type: str
6949    :ivar system_data: The system metadata relating to this resource.
6950    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
6951    :param convention:  Possible values include: "NoProxy", "Standard", "Custom".
6952    :type convention: str or ~azure.mgmt.web.v2020_09_01.models.ForwardProxyConvention
6953    :param custom_host_header_name:
6954    :type custom_host_header_name: str
6955    :param custom_proto_header_name:
6956    :type custom_proto_header_name: str
6957    """
6958
6959    _validation = {
6960        'id': {'readonly': True},
6961        'name': {'readonly': True},
6962        'type': {'readonly': True},
6963        'system_data': {'readonly': True},
6964    }
6965
6966    _attribute_map = {
6967        'id': {'key': 'id', 'type': 'str'},
6968        'name': {'key': 'name', 'type': 'str'},
6969        'kind': {'key': 'kind', 'type': 'str'},
6970        'type': {'key': 'type', 'type': 'str'},
6971        'system_data': {'key': 'systemData', 'type': 'SystemData'},
6972        'convention': {'key': 'properties.convention', 'type': 'str'},
6973        'custom_host_header_name': {'key': 'properties.customHostHeaderName', 'type': 'str'},
6974        'custom_proto_header_name': {'key': 'properties.customProtoHeaderName', 'type': 'str'},
6975    }
6976
6977    def __init__(
6978        self,
6979        **kwargs
6980    ):
6981        super(ForwardProxy, self).__init__(**kwargs)
6982        self.convention = kwargs.get('convention', None)
6983        self.custom_host_header_name = kwargs.get('custom_host_header_name', None)
6984        self.custom_proto_header_name = kwargs.get('custom_proto_header_name', None)
6985
6986
6987class FunctionEnvelope(ProxyOnlyResource):
6988    """Function information.
6989
6990    Variables are only populated by the server, and will be ignored when sending a request.
6991
6992    :ivar id: Resource Id.
6993    :vartype id: str
6994    :ivar name: Resource Name.
6995    :vartype name: str
6996    :param kind: Kind of resource.
6997    :type kind: str
6998    :ivar type: Resource type.
6999    :vartype type: str
7000    :ivar system_data: The system metadata relating to this resource.
7001    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7002    :param function_app_id: Function App ID.
7003    :type function_app_id: str
7004    :param script_root_path_href: Script root path URI.
7005    :type script_root_path_href: str
7006    :param script_href: Script URI.
7007    :type script_href: str
7008    :param config_href: Config URI.
7009    :type config_href: str
7010    :param test_data_href: Test data URI.
7011    :type test_data_href: str
7012    :param secrets_file_href: Secrets file URI.
7013    :type secrets_file_href: str
7014    :param href: Function URI.
7015    :type href: str
7016    :param config: Config information.
7017    :type config: any
7018    :param files: File list.
7019    :type files: dict[str, str]
7020    :param test_data: Test data used when testing via the Azure Portal.
7021    :type test_data: str
7022    :param invoke_url_template: The invocation URL.
7023    :type invoke_url_template: str
7024    :param language: The function language.
7025    :type language: str
7026    :param is_disabled: Gets or sets a value indicating whether the function is disabled.
7027    :type is_disabled: bool
7028    """
7029
7030    _validation = {
7031        'id': {'readonly': True},
7032        'name': {'readonly': True},
7033        'type': {'readonly': True},
7034        'system_data': {'readonly': True},
7035    }
7036
7037    _attribute_map = {
7038        'id': {'key': 'id', 'type': 'str'},
7039        'name': {'key': 'name', 'type': 'str'},
7040        'kind': {'key': 'kind', 'type': 'str'},
7041        'type': {'key': 'type', 'type': 'str'},
7042        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7043        'function_app_id': {'key': 'properties.function_app_id', 'type': 'str'},
7044        'script_root_path_href': {'key': 'properties.script_root_path_href', 'type': 'str'},
7045        'script_href': {'key': 'properties.script_href', 'type': 'str'},
7046        'config_href': {'key': 'properties.config_href', 'type': 'str'},
7047        'test_data_href': {'key': 'properties.test_data_href', 'type': 'str'},
7048        'secrets_file_href': {'key': 'properties.secrets_file_href', 'type': 'str'},
7049        'href': {'key': 'properties.href', 'type': 'str'},
7050        'config': {'key': 'properties.config', 'type': 'object'},
7051        'files': {'key': 'properties.files', 'type': '{str}'},
7052        'test_data': {'key': 'properties.test_data', 'type': 'str'},
7053        'invoke_url_template': {'key': 'properties.invoke_url_template', 'type': 'str'},
7054        'language': {'key': 'properties.language', 'type': 'str'},
7055        'is_disabled': {'key': 'properties.isDisabled', 'type': 'bool'},
7056    }
7057
7058    def __init__(
7059        self,
7060        **kwargs
7061    ):
7062        super(FunctionEnvelope, self).__init__(**kwargs)
7063        self.function_app_id = kwargs.get('function_app_id', None)
7064        self.script_root_path_href = kwargs.get('script_root_path_href', None)
7065        self.script_href = kwargs.get('script_href', None)
7066        self.config_href = kwargs.get('config_href', None)
7067        self.test_data_href = kwargs.get('test_data_href', None)
7068        self.secrets_file_href = kwargs.get('secrets_file_href', None)
7069        self.href = kwargs.get('href', None)
7070        self.config = kwargs.get('config', None)
7071        self.files = kwargs.get('files', None)
7072        self.test_data = kwargs.get('test_data', None)
7073        self.invoke_url_template = kwargs.get('invoke_url_template', None)
7074        self.language = kwargs.get('language', None)
7075        self.is_disabled = kwargs.get('is_disabled', None)
7076
7077
7078class FunctionEnvelopeCollection(msrest.serialization.Model):
7079    """Collection of Kudu function information elements.
7080
7081    Variables are only populated by the server, and will be ignored when sending a request.
7082
7083    All required parameters must be populated in order to send to Azure.
7084
7085    :param value: Required. Collection of resources.
7086    :type value: list[~azure.mgmt.web.v2020_09_01.models.FunctionEnvelope]
7087    :ivar next_link: Link to next page of resources.
7088    :vartype next_link: str
7089    """
7090
7091    _validation = {
7092        'value': {'required': True},
7093        'next_link': {'readonly': True},
7094    }
7095
7096    _attribute_map = {
7097        'value': {'key': 'value', 'type': '[FunctionEnvelope]'},
7098        'next_link': {'key': 'nextLink', 'type': 'str'},
7099    }
7100
7101    def __init__(
7102        self,
7103        **kwargs
7104    ):
7105        super(FunctionEnvelopeCollection, self).__init__(**kwargs)
7106        self.value = kwargs['value']
7107        self.next_link = None
7108
7109
7110class FunctionSecrets(msrest.serialization.Model):
7111    """Function secrets.
7112
7113    :param key: Secret key.
7114    :type key: str
7115    :param trigger_url: Trigger URL.
7116    :type trigger_url: str
7117    """
7118
7119    _attribute_map = {
7120        'key': {'key': 'key', 'type': 'str'},
7121        'trigger_url': {'key': 'trigger_url', 'type': 'str'},
7122    }
7123
7124    def __init__(
7125        self,
7126        **kwargs
7127    ):
7128        super(FunctionSecrets, self).__init__(**kwargs)
7129        self.key = kwargs.get('key', None)
7130        self.trigger_url = kwargs.get('trigger_url', None)
7131
7132
7133class GeoRegion(ProxyOnlyResource):
7134    """Geographical region.
7135
7136    Variables are only populated by the server, and will be ignored when sending a request.
7137
7138    :ivar id: Resource Id.
7139    :vartype id: str
7140    :ivar name: Resource Name.
7141    :vartype name: str
7142    :param kind: Kind of resource.
7143    :type kind: str
7144    :ivar type: Resource type.
7145    :vartype type: str
7146    :ivar system_data: The system metadata relating to this resource.
7147    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7148    :ivar description: Region description.
7149    :vartype description: str
7150    :ivar display_name: Display name for region.
7151    :vartype display_name: str
7152    :ivar org_domain: Display name for region.
7153    :vartype org_domain: str
7154    """
7155
7156    _validation = {
7157        'id': {'readonly': True},
7158        'name': {'readonly': True},
7159        'type': {'readonly': True},
7160        'system_data': {'readonly': True},
7161        'description': {'readonly': True},
7162        'display_name': {'readonly': True},
7163        'org_domain': {'readonly': True},
7164    }
7165
7166    _attribute_map = {
7167        'id': {'key': 'id', 'type': 'str'},
7168        'name': {'key': 'name', 'type': 'str'},
7169        'kind': {'key': 'kind', 'type': 'str'},
7170        'type': {'key': 'type', 'type': 'str'},
7171        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7172        'description': {'key': 'properties.description', 'type': 'str'},
7173        'display_name': {'key': 'properties.displayName', 'type': 'str'},
7174        'org_domain': {'key': 'properties.orgDomain', 'type': 'str'},
7175    }
7176
7177    def __init__(
7178        self,
7179        **kwargs
7180    ):
7181        super(GeoRegion, self).__init__(**kwargs)
7182        self.description = None
7183        self.display_name = None
7184        self.org_domain = None
7185
7186
7187class GeoRegionCollection(msrest.serialization.Model):
7188    """Collection of geographical regions.
7189
7190    Variables are only populated by the server, and will be ignored when sending a request.
7191
7192    All required parameters must be populated in order to send to Azure.
7193
7194    :param value: Required. Collection of resources.
7195    :type value: list[~azure.mgmt.web.v2020_09_01.models.GeoRegion]
7196    :ivar next_link: Link to next page of resources.
7197    :vartype next_link: str
7198    """
7199
7200    _validation = {
7201        'value': {'required': True},
7202        'next_link': {'readonly': True},
7203    }
7204
7205    _attribute_map = {
7206        'value': {'key': 'value', 'type': '[GeoRegion]'},
7207        'next_link': {'key': 'nextLink', 'type': 'str'},
7208    }
7209
7210    def __init__(
7211        self,
7212        **kwargs
7213    ):
7214        super(GeoRegionCollection, self).__init__(**kwargs)
7215        self.value = kwargs['value']
7216        self.next_link = None
7217
7218
7219class GitHub(ProxyOnlyResource):
7220    """GitHub.
7221
7222    Variables are only populated by the server, and will be ignored when sending a request.
7223
7224    :ivar id: Resource Id.
7225    :vartype id: str
7226    :ivar name: Resource Name.
7227    :vartype name: str
7228    :param kind: Kind of resource.
7229    :type kind: str
7230    :ivar type: Resource type.
7231    :vartype type: str
7232    :ivar system_data: The system metadata relating to this resource.
7233    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7234    :param enabled:
7235    :type enabled: bool
7236    :param registration:
7237    :type registration: ~azure.mgmt.web.v2020_09_01.models.ClientRegistration
7238    :param login:
7239    :type login: ~azure.mgmt.web.v2020_09_01.models.LoginScopes
7240    """
7241
7242    _validation = {
7243        'id': {'readonly': True},
7244        'name': {'readonly': True},
7245        'type': {'readonly': True},
7246        'system_data': {'readonly': True},
7247    }
7248
7249    _attribute_map = {
7250        'id': {'key': 'id', 'type': 'str'},
7251        'name': {'key': 'name', 'type': 'str'},
7252        'kind': {'key': 'kind', 'type': 'str'},
7253        'type': {'key': 'type', 'type': 'str'},
7254        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7255        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
7256        'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'},
7257        'login': {'key': 'properties.login', 'type': 'LoginScopes'},
7258    }
7259
7260    def __init__(
7261        self,
7262        **kwargs
7263    ):
7264        super(GitHub, self).__init__(**kwargs)
7265        self.enabled = kwargs.get('enabled', None)
7266        self.registration = kwargs.get('registration', None)
7267        self.login = kwargs.get('login', None)
7268
7269
7270class GlobalCsmSkuDescription(msrest.serialization.Model):
7271    """A Global SKU Description.
7272
7273    :param name: Name of the resource SKU.
7274    :type name: str
7275    :param tier: Service Tier of the resource SKU.
7276    :type tier: str
7277    :param size: Size specifier of the resource SKU.
7278    :type size: str
7279    :param family: Family code of the resource SKU.
7280    :type family: str
7281    :param capacity: Min, max, and default scale values of the SKU.
7282    :type capacity: ~azure.mgmt.web.v2020_09_01.models.SkuCapacity
7283    :param locations: Locations of the SKU.
7284    :type locations: list[str]
7285    :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?.
7286    :type capabilities: list[~azure.mgmt.web.v2020_09_01.models.Capability]
7287    """
7288
7289    _attribute_map = {
7290        'name': {'key': 'name', 'type': 'str'},
7291        'tier': {'key': 'tier', 'type': 'str'},
7292        'size': {'key': 'size', 'type': 'str'},
7293        'family': {'key': 'family', 'type': 'str'},
7294        'capacity': {'key': 'capacity', 'type': 'SkuCapacity'},
7295        'locations': {'key': 'locations', 'type': '[str]'},
7296        'capabilities': {'key': 'capabilities', 'type': '[Capability]'},
7297    }
7298
7299    def __init__(
7300        self,
7301        **kwargs
7302    ):
7303        super(GlobalCsmSkuDescription, self).__init__(**kwargs)
7304        self.name = kwargs.get('name', None)
7305        self.tier = kwargs.get('tier', None)
7306        self.size = kwargs.get('size', None)
7307        self.family = kwargs.get('family', None)
7308        self.capacity = kwargs.get('capacity', None)
7309        self.locations = kwargs.get('locations', None)
7310        self.capabilities = kwargs.get('capabilities', None)
7311
7312
7313class GlobalValidation(ProxyOnlyResource):
7314    """GlobalValidation.
7315
7316    Variables are only populated by the server, and will be ignored when sending a request.
7317
7318    :ivar id: Resource Id.
7319    :vartype id: str
7320    :ivar name: Resource Name.
7321    :vartype name: str
7322    :param kind: Kind of resource.
7323    :type kind: str
7324    :ivar type: Resource type.
7325    :vartype type: str
7326    :ivar system_data: The system metadata relating to this resource.
7327    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7328    :param require_authentication:
7329    :type require_authentication: bool
7330    :param unauthenticated_client_action:  Possible values include: "RedirectToLoginPage",
7331     "AllowAnonymous", "Return401", "Return403".
7332    :type unauthenticated_client_action: str or
7333     ~azure.mgmt.web.v2020_09_01.models.UnauthenticatedClientActionV2
7334    :param redirect_to_provider:
7335    :type redirect_to_provider: str
7336    :param excluded_paths:
7337    :type excluded_paths: list[str]
7338    """
7339
7340    _validation = {
7341        'id': {'readonly': True},
7342        'name': {'readonly': True},
7343        'type': {'readonly': True},
7344        'system_data': {'readonly': True},
7345    }
7346
7347    _attribute_map = {
7348        'id': {'key': 'id', 'type': 'str'},
7349        'name': {'key': 'name', 'type': 'str'},
7350        'kind': {'key': 'kind', 'type': 'str'},
7351        'type': {'key': 'type', 'type': 'str'},
7352        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7353        'require_authentication': {'key': 'properties.requireAuthentication', 'type': 'bool'},
7354        'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'},
7355        'redirect_to_provider': {'key': 'properties.redirectToProvider', 'type': 'str'},
7356        'excluded_paths': {'key': 'properties.excludedPaths', 'type': '[str]'},
7357    }
7358
7359    def __init__(
7360        self,
7361        **kwargs
7362    ):
7363        super(GlobalValidation, self).__init__(**kwargs)
7364        self.require_authentication = kwargs.get('require_authentication', None)
7365        self.unauthenticated_client_action = kwargs.get('unauthenticated_client_action', None)
7366        self.redirect_to_provider = kwargs.get('redirect_to_provider', None)
7367        self.excluded_paths = kwargs.get('excluded_paths', None)
7368
7369
7370class Google(ProxyOnlyResource):
7371    """Google.
7372
7373    Variables are only populated by the server, and will be ignored when sending a request.
7374
7375    :ivar id: Resource Id.
7376    :vartype id: str
7377    :ivar name: Resource Name.
7378    :vartype name: str
7379    :param kind: Kind of resource.
7380    :type kind: str
7381    :ivar type: Resource type.
7382    :vartype type: str
7383    :ivar system_data: The system metadata relating to this resource.
7384    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7385    :param enabled:
7386    :type enabled: bool
7387    :param registration:
7388    :type registration: ~azure.mgmt.web.v2020_09_01.models.ClientRegistration
7389    :param login:
7390    :type login: ~azure.mgmt.web.v2020_09_01.models.LoginScopes
7391    :param validation:
7392    :type validation: ~azure.mgmt.web.v2020_09_01.models.AllowedAudiencesValidation
7393    """
7394
7395    _validation = {
7396        'id': {'readonly': True},
7397        'name': {'readonly': True},
7398        'type': {'readonly': True},
7399        'system_data': {'readonly': True},
7400    }
7401
7402    _attribute_map = {
7403        'id': {'key': 'id', 'type': 'str'},
7404        'name': {'key': 'name', 'type': 'str'},
7405        'kind': {'key': 'kind', 'type': 'str'},
7406        'type': {'key': 'type', 'type': 'str'},
7407        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7408        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
7409        'registration': {'key': 'properties.registration', 'type': 'ClientRegistration'},
7410        'login': {'key': 'properties.login', 'type': 'LoginScopes'},
7411        'validation': {'key': 'properties.validation', 'type': 'AllowedAudiencesValidation'},
7412    }
7413
7414    def __init__(
7415        self,
7416        **kwargs
7417    ):
7418        super(Google, self).__init__(**kwargs)
7419        self.enabled = kwargs.get('enabled', None)
7420        self.registration = kwargs.get('registration', None)
7421        self.login = kwargs.get('login', None)
7422        self.validation = kwargs.get('validation', None)
7423
7424
7425class HandlerMapping(msrest.serialization.Model):
7426    """The IIS handler mappings used to define which handler processes HTTP requests with certain extension.
7427For example, it is used to configure php-cgi.exe process to handle all HTTP requests with *.php extension.
7428
7429    :param extension: Requests with this extension will be handled using the specified FastCGI
7430     application.
7431    :type extension: str
7432    :param script_processor: The absolute path to the FastCGI application.
7433    :type script_processor: str
7434    :param arguments: Command-line arguments to be passed to the script processor.
7435    :type arguments: str
7436    """
7437
7438    _attribute_map = {
7439        'extension': {'key': 'extension', 'type': 'str'},
7440        'script_processor': {'key': 'scriptProcessor', 'type': 'str'},
7441        'arguments': {'key': 'arguments', 'type': 'str'},
7442    }
7443
7444    def __init__(
7445        self,
7446        **kwargs
7447    ):
7448        super(HandlerMapping, self).__init__(**kwargs)
7449        self.extension = kwargs.get('extension', None)
7450        self.script_processor = kwargs.get('script_processor', None)
7451        self.arguments = kwargs.get('arguments', None)
7452
7453
7454class HostingEnvironmentDeploymentInfo(msrest.serialization.Model):
7455    """Information needed to create resources on an App Service Environment.
7456
7457    :param name: Name of the App Service Environment.
7458    :type name: str
7459    :param location: Location of the App Service Environment.
7460    :type location: str
7461    """
7462
7463    _attribute_map = {
7464        'name': {'key': 'name', 'type': 'str'},
7465        'location': {'key': 'location', 'type': 'str'},
7466    }
7467
7468    def __init__(
7469        self,
7470        **kwargs
7471    ):
7472        super(HostingEnvironmentDeploymentInfo, self).__init__(**kwargs)
7473        self.name = kwargs.get('name', None)
7474        self.location = kwargs.get('location', None)
7475
7476
7477class HostingEnvironmentDiagnostics(msrest.serialization.Model):
7478    """Diagnostics for an App Service Environment.
7479
7480    :param name: Name/identifier of the diagnostics.
7481    :type name: str
7482    :param diagnostics_output: Diagnostics output.
7483    :type diagnostics_output: str
7484    """
7485
7486    _attribute_map = {
7487        'name': {'key': 'name', 'type': 'str'},
7488        'diagnostics_output': {'key': 'diagnosticsOutput', 'type': 'str'},
7489    }
7490
7491    def __init__(
7492        self,
7493        **kwargs
7494    ):
7495        super(HostingEnvironmentDiagnostics, self).__init__(**kwargs)
7496        self.name = kwargs.get('name', None)
7497        self.diagnostics_output = kwargs.get('diagnostics_output', None)
7498
7499
7500class HostingEnvironmentProfile(msrest.serialization.Model):
7501    """Specification for an App Service Environment to use for this resource.
7502
7503    Variables are only populated by the server, and will be ignored when sending a request.
7504
7505    :param id: Resource ID of the App Service Environment.
7506    :type id: str
7507    :ivar name: Name of the App Service Environment.
7508    :vartype name: str
7509    :ivar type: Resource type of the App Service Environment.
7510    :vartype type: str
7511    """
7512
7513    _validation = {
7514        'name': {'readonly': True},
7515        'type': {'readonly': True},
7516    }
7517
7518    _attribute_map = {
7519        'id': {'key': 'id', 'type': 'str'},
7520        'name': {'key': 'name', 'type': 'str'},
7521        'type': {'key': 'type', 'type': 'str'},
7522    }
7523
7524    def __init__(
7525        self,
7526        **kwargs
7527    ):
7528        super(HostingEnvironmentProfile, self).__init__(**kwargs)
7529        self.id = kwargs.get('id', None)
7530        self.name = None
7531        self.type = None
7532
7533
7534class HostKeys(msrest.serialization.Model):
7535    """Functions host level keys.
7536
7537    :param master_key: Secret key.
7538    :type master_key: str
7539    :param function_keys: Host level function keys.
7540    :type function_keys: dict[str, str]
7541    :param system_keys: System keys.
7542    :type system_keys: dict[str, str]
7543    """
7544
7545    _attribute_map = {
7546        'master_key': {'key': 'masterKey', 'type': 'str'},
7547        'function_keys': {'key': 'functionKeys', 'type': '{str}'},
7548        'system_keys': {'key': 'systemKeys', 'type': '{str}'},
7549    }
7550
7551    def __init__(
7552        self,
7553        **kwargs
7554    ):
7555        super(HostKeys, self).__init__(**kwargs)
7556        self.master_key = kwargs.get('master_key', None)
7557        self.function_keys = kwargs.get('function_keys', None)
7558        self.system_keys = kwargs.get('system_keys', None)
7559
7560
7561class HostName(msrest.serialization.Model):
7562    """Details of a hostname derived from a domain.
7563
7564    :param name: Name of the hostname.
7565    :type name: str
7566    :param site_names: List of apps the hostname is assigned to. This list will have more than one
7567     app only if the hostname is pointing to a Traffic Manager.
7568    :type site_names: list[str]
7569    :param azure_resource_name: Name of the Azure resource the hostname is assigned to. If it is
7570     assigned to a Traffic Manager then it will be the Traffic Manager name otherwise it will be the
7571     app name.
7572    :type azure_resource_name: str
7573    :param azure_resource_type: Type of the Azure resource the hostname is assigned to. Possible
7574     values include: "Website", "TrafficManager".
7575    :type azure_resource_type: str or ~azure.mgmt.web.v2020_09_01.models.AzureResourceType
7576    :param custom_host_name_dns_record_type: Type of the DNS record. Possible values include:
7577     "CName", "A".
7578    :type custom_host_name_dns_record_type: str or
7579     ~azure.mgmt.web.v2020_09_01.models.CustomHostNameDnsRecordType
7580    :param host_name_type: Type of the hostname. Possible values include: "Verified", "Managed".
7581    :type host_name_type: str or ~azure.mgmt.web.v2020_09_01.models.HostNameType
7582    """
7583
7584    _attribute_map = {
7585        'name': {'key': 'name', 'type': 'str'},
7586        'site_names': {'key': 'siteNames', 'type': '[str]'},
7587        'azure_resource_name': {'key': 'azureResourceName', 'type': 'str'},
7588        'azure_resource_type': {'key': 'azureResourceType', 'type': 'str'},
7589        'custom_host_name_dns_record_type': {'key': 'customHostNameDnsRecordType', 'type': 'str'},
7590        'host_name_type': {'key': 'hostNameType', 'type': 'str'},
7591    }
7592
7593    def __init__(
7594        self,
7595        **kwargs
7596    ):
7597        super(HostName, self).__init__(**kwargs)
7598        self.name = kwargs.get('name', None)
7599        self.site_names = kwargs.get('site_names', None)
7600        self.azure_resource_name = kwargs.get('azure_resource_name', None)
7601        self.azure_resource_type = kwargs.get('azure_resource_type', None)
7602        self.custom_host_name_dns_record_type = kwargs.get('custom_host_name_dns_record_type', None)
7603        self.host_name_type = kwargs.get('host_name_type', None)
7604
7605
7606class HostNameBinding(ProxyOnlyResource):
7607    """A hostname binding object.
7608
7609    Variables are only populated by the server, and will be ignored when sending a request.
7610
7611    :ivar id: Resource Id.
7612    :vartype id: str
7613    :ivar name: Resource Name.
7614    :vartype name: str
7615    :param kind: Kind of resource.
7616    :type kind: str
7617    :ivar type: Resource type.
7618    :vartype type: str
7619    :ivar system_data: The system metadata relating to this resource.
7620    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7621    :param site_name: App Service app name.
7622    :type site_name: str
7623    :param domain_id: Fully qualified ARM domain resource URI.
7624    :type domain_id: str
7625    :param azure_resource_name: Azure resource name.
7626    :type azure_resource_name: str
7627    :param azure_resource_type: Azure resource type. Possible values include: "Website",
7628     "TrafficManager".
7629    :type azure_resource_type: str or ~azure.mgmt.web.v2020_09_01.models.AzureResourceType
7630    :param custom_host_name_dns_record_type: Custom DNS record type. Possible values include:
7631     "CName", "A".
7632    :type custom_host_name_dns_record_type: str or
7633     ~azure.mgmt.web.v2020_09_01.models.CustomHostNameDnsRecordType
7634    :param host_name_type: Hostname type. Possible values include: "Verified", "Managed".
7635    :type host_name_type: str or ~azure.mgmt.web.v2020_09_01.models.HostNameType
7636    :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled",
7637     "IpBasedEnabled".
7638    :type ssl_state: str or ~azure.mgmt.web.v2020_09_01.models.SslState
7639    :param thumbprint: SSL certificate thumbprint.
7640    :type thumbprint: str
7641    :ivar virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled.
7642    :vartype virtual_ip: str
7643    """
7644
7645    _validation = {
7646        'id': {'readonly': True},
7647        'name': {'readonly': True},
7648        'type': {'readonly': True},
7649        'system_data': {'readonly': True},
7650        'virtual_ip': {'readonly': True},
7651    }
7652
7653    _attribute_map = {
7654        'id': {'key': 'id', 'type': 'str'},
7655        'name': {'key': 'name', 'type': 'str'},
7656        'kind': {'key': 'kind', 'type': 'str'},
7657        'type': {'key': 'type', 'type': 'str'},
7658        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7659        'site_name': {'key': 'properties.siteName', 'type': 'str'},
7660        'domain_id': {'key': 'properties.domainId', 'type': 'str'},
7661        'azure_resource_name': {'key': 'properties.azureResourceName', 'type': 'str'},
7662        'azure_resource_type': {'key': 'properties.azureResourceType', 'type': 'str'},
7663        'custom_host_name_dns_record_type': {'key': 'properties.customHostNameDnsRecordType', 'type': 'str'},
7664        'host_name_type': {'key': 'properties.hostNameType', 'type': 'str'},
7665        'ssl_state': {'key': 'properties.sslState', 'type': 'str'},
7666        'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'},
7667        'virtual_ip': {'key': 'properties.virtualIP', 'type': 'str'},
7668    }
7669
7670    def __init__(
7671        self,
7672        **kwargs
7673    ):
7674        super(HostNameBinding, self).__init__(**kwargs)
7675        self.site_name = kwargs.get('site_name', None)
7676        self.domain_id = kwargs.get('domain_id', None)
7677        self.azure_resource_name = kwargs.get('azure_resource_name', None)
7678        self.azure_resource_type = kwargs.get('azure_resource_type', None)
7679        self.custom_host_name_dns_record_type = kwargs.get('custom_host_name_dns_record_type', None)
7680        self.host_name_type = kwargs.get('host_name_type', None)
7681        self.ssl_state = kwargs.get('ssl_state', None)
7682        self.thumbprint = kwargs.get('thumbprint', None)
7683        self.virtual_ip = None
7684
7685
7686class HostNameBindingCollection(msrest.serialization.Model):
7687    """Collection of hostname bindings.
7688
7689    Variables are only populated by the server, and will be ignored when sending a request.
7690
7691    All required parameters must be populated in order to send to Azure.
7692
7693    :param value: Required. Collection of resources.
7694    :type value: list[~azure.mgmt.web.v2020_09_01.models.HostNameBinding]
7695    :ivar next_link: Link to next page of resources.
7696    :vartype next_link: str
7697    """
7698
7699    _validation = {
7700        'value': {'required': True},
7701        'next_link': {'readonly': True},
7702    }
7703
7704    _attribute_map = {
7705        'value': {'key': 'value', 'type': '[HostNameBinding]'},
7706        'next_link': {'key': 'nextLink', 'type': 'str'},
7707    }
7708
7709    def __init__(
7710        self,
7711        **kwargs
7712    ):
7713        super(HostNameBindingCollection, self).__init__(**kwargs)
7714        self.value = kwargs['value']
7715        self.next_link = None
7716
7717
7718class HostNameSslState(msrest.serialization.Model):
7719    """SSL-enabled hostname.
7720
7721    :param name: Hostname.
7722    :type name: str
7723    :param ssl_state: SSL type. Possible values include: "Disabled", "SniEnabled",
7724     "IpBasedEnabled".
7725    :type ssl_state: str or ~azure.mgmt.web.v2020_09_01.models.SslState
7726    :param virtual_ip: Virtual IP address assigned to the hostname if IP based SSL is enabled.
7727    :type virtual_ip: str
7728    :param thumbprint: SSL certificate thumbprint.
7729    :type thumbprint: str
7730    :param to_update: Set to :code:`<code>true</code>` to update existing hostname.
7731    :type to_update: bool
7732    :param host_type: Indicates whether the hostname is a standard or repository hostname. Possible
7733     values include: "Standard", "Repository".
7734    :type host_type: str or ~azure.mgmt.web.v2020_09_01.models.HostType
7735    """
7736
7737    _attribute_map = {
7738        'name': {'key': 'name', 'type': 'str'},
7739        'ssl_state': {'key': 'sslState', 'type': 'str'},
7740        'virtual_ip': {'key': 'virtualIP', 'type': 'str'},
7741        'thumbprint': {'key': 'thumbprint', 'type': 'str'},
7742        'to_update': {'key': 'toUpdate', 'type': 'bool'},
7743        'host_type': {'key': 'hostType', 'type': 'str'},
7744    }
7745
7746    def __init__(
7747        self,
7748        **kwargs
7749    ):
7750        super(HostNameSslState, self).__init__(**kwargs)
7751        self.name = kwargs.get('name', None)
7752        self.ssl_state = kwargs.get('ssl_state', None)
7753        self.virtual_ip = kwargs.get('virtual_ip', None)
7754        self.thumbprint = kwargs.get('thumbprint', None)
7755        self.to_update = kwargs.get('to_update', None)
7756        self.host_type = kwargs.get('host_type', None)
7757
7758
7759class HttpLogsConfig(msrest.serialization.Model):
7760    """Http logs configuration.
7761
7762    :param file_system: Http logs to file system configuration.
7763    :type file_system: ~azure.mgmt.web.v2020_09_01.models.FileSystemHttpLogsConfig
7764    :param azure_blob_storage: Http logs to azure blob storage configuration.
7765    :type azure_blob_storage: ~azure.mgmt.web.v2020_09_01.models.AzureBlobStorageHttpLogsConfig
7766    """
7767
7768    _attribute_map = {
7769        'file_system': {'key': 'fileSystem', 'type': 'FileSystemHttpLogsConfig'},
7770        'azure_blob_storage': {'key': 'azureBlobStorage', 'type': 'AzureBlobStorageHttpLogsConfig'},
7771    }
7772
7773    def __init__(
7774        self,
7775        **kwargs
7776    ):
7777        super(HttpLogsConfig, self).__init__(**kwargs)
7778        self.file_system = kwargs.get('file_system', None)
7779        self.azure_blob_storage = kwargs.get('azure_blob_storage', None)
7780
7781
7782class HttpSettings(ProxyOnlyResource):
7783    """HttpSettings.
7784
7785    Variables are only populated by the server, and will be ignored when sending a request.
7786
7787    :ivar id: Resource Id.
7788    :vartype id: str
7789    :ivar name: Resource Name.
7790    :vartype name: str
7791    :param kind: Kind of resource.
7792    :type kind: str
7793    :ivar type: Resource type.
7794    :vartype type: str
7795    :ivar system_data: The system metadata relating to this resource.
7796    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7797    :param require_https:
7798    :type require_https: bool
7799    :param routes:
7800    :type routes: ~azure.mgmt.web.v2020_09_01.models.HttpSettingsRoutes
7801    :param forward_proxy:
7802    :type forward_proxy: ~azure.mgmt.web.v2020_09_01.models.ForwardProxy
7803    """
7804
7805    _validation = {
7806        'id': {'readonly': True},
7807        'name': {'readonly': True},
7808        'type': {'readonly': True},
7809        'system_data': {'readonly': True},
7810    }
7811
7812    _attribute_map = {
7813        'id': {'key': 'id', 'type': 'str'},
7814        'name': {'key': 'name', 'type': 'str'},
7815        'kind': {'key': 'kind', 'type': 'str'},
7816        'type': {'key': 'type', 'type': 'str'},
7817        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7818        'require_https': {'key': 'properties.requireHttps', 'type': 'bool'},
7819        'routes': {'key': 'properties.routes', 'type': 'HttpSettingsRoutes'},
7820        'forward_proxy': {'key': 'properties.forwardProxy', 'type': 'ForwardProxy'},
7821    }
7822
7823    def __init__(
7824        self,
7825        **kwargs
7826    ):
7827        super(HttpSettings, self).__init__(**kwargs)
7828        self.require_https = kwargs.get('require_https', None)
7829        self.routes = kwargs.get('routes', None)
7830        self.forward_proxy = kwargs.get('forward_proxy', None)
7831
7832
7833class HttpSettingsRoutes(ProxyOnlyResource):
7834    """HttpSettingsRoutes.
7835
7836    Variables are only populated by the server, and will be ignored when sending a request.
7837
7838    :ivar id: Resource Id.
7839    :vartype id: str
7840    :ivar name: Resource Name.
7841    :vartype name: str
7842    :param kind: Kind of resource.
7843    :type kind: str
7844    :ivar type: Resource type.
7845    :vartype type: str
7846    :ivar system_data: The system metadata relating to this resource.
7847    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7848    :param api_prefix:
7849    :type api_prefix: str
7850    """
7851
7852    _validation = {
7853        'id': {'readonly': True},
7854        'name': {'readonly': True},
7855        'type': {'readonly': True},
7856        'system_data': {'readonly': True},
7857    }
7858
7859    _attribute_map = {
7860        'id': {'key': 'id', 'type': 'str'},
7861        'name': {'key': 'name', 'type': 'str'},
7862        'kind': {'key': 'kind', 'type': 'str'},
7863        'type': {'key': 'type', 'type': 'str'},
7864        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7865        'api_prefix': {'key': 'properties.apiPrefix', 'type': 'str'},
7866    }
7867
7868    def __init__(
7869        self,
7870        **kwargs
7871    ):
7872        super(HttpSettingsRoutes, self).__init__(**kwargs)
7873        self.api_prefix = kwargs.get('api_prefix', None)
7874
7875
7876class HybridConnection(ProxyOnlyResource):
7877    """Hybrid Connection contract. This is used to configure a Hybrid Connection.
7878
7879    Variables are only populated by the server, and will be ignored when sending a request.
7880
7881    :ivar id: Resource Id.
7882    :vartype id: str
7883    :ivar name: Resource Name.
7884    :vartype name: str
7885    :param kind: Kind of resource.
7886    :type kind: str
7887    :ivar type: Resource type.
7888    :vartype type: str
7889    :ivar system_data: The system metadata relating to this resource.
7890    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7891    :param service_bus_namespace: The name of the Service Bus namespace.
7892    :type service_bus_namespace: str
7893    :param relay_name: The name of the Service Bus relay.
7894    :type relay_name: str
7895    :param relay_arm_uri: The ARM URI to the Service Bus relay.
7896    :type relay_arm_uri: str
7897    :param hostname: The hostname of the endpoint.
7898    :type hostname: str
7899    :param port: The port of the endpoint.
7900    :type port: int
7901    :param send_key_name: The name of the Service Bus key which has Send permissions. This is used
7902     to authenticate to Service Bus.
7903    :type send_key_name: str
7904    :param send_key_value: The value of the Service Bus key. This is used to authenticate to
7905     Service Bus. In ARM this key will not be returned
7906     normally, use the POST /listKeys API instead.
7907    :type send_key_value: str
7908    :param service_bus_suffix: The suffix for the service bus endpoint. By default this is
7909     .servicebus.windows.net.
7910    :type service_bus_suffix: str
7911    """
7912
7913    _validation = {
7914        'id': {'readonly': True},
7915        'name': {'readonly': True},
7916        'type': {'readonly': True},
7917        'system_data': {'readonly': True},
7918    }
7919
7920    _attribute_map = {
7921        'id': {'key': 'id', 'type': 'str'},
7922        'name': {'key': 'name', 'type': 'str'},
7923        'kind': {'key': 'kind', 'type': 'str'},
7924        'type': {'key': 'type', 'type': 'str'},
7925        'system_data': {'key': 'systemData', 'type': 'SystemData'},
7926        'service_bus_namespace': {'key': 'properties.serviceBusNamespace', 'type': 'str'},
7927        'relay_name': {'key': 'properties.relayName', 'type': 'str'},
7928        'relay_arm_uri': {'key': 'properties.relayArmUri', 'type': 'str'},
7929        'hostname': {'key': 'properties.hostname', 'type': 'str'},
7930        'port': {'key': 'properties.port', 'type': 'int'},
7931        'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'},
7932        'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'},
7933        'service_bus_suffix': {'key': 'properties.serviceBusSuffix', 'type': 'str'},
7934    }
7935
7936    def __init__(
7937        self,
7938        **kwargs
7939    ):
7940        super(HybridConnection, self).__init__(**kwargs)
7941        self.service_bus_namespace = kwargs.get('service_bus_namespace', None)
7942        self.relay_name = kwargs.get('relay_name', None)
7943        self.relay_arm_uri = kwargs.get('relay_arm_uri', None)
7944        self.hostname = kwargs.get('hostname', None)
7945        self.port = kwargs.get('port', None)
7946        self.send_key_name = kwargs.get('send_key_name', None)
7947        self.send_key_value = kwargs.get('send_key_value', None)
7948        self.service_bus_suffix = kwargs.get('service_bus_suffix', None)
7949
7950
7951class HybridConnectionCollection(msrest.serialization.Model):
7952    """Collection of hostname bindings.
7953
7954    Variables are only populated by the server, and will be ignored when sending a request.
7955
7956    All required parameters must be populated in order to send to Azure.
7957
7958    :param value: Required. Collection of resources.
7959    :type value: list[~azure.mgmt.web.v2020_09_01.models.HybridConnection]
7960    :ivar next_link: Link to next page of resources.
7961    :vartype next_link: str
7962    """
7963
7964    _validation = {
7965        'value': {'required': True},
7966        'next_link': {'readonly': True},
7967    }
7968
7969    _attribute_map = {
7970        'value': {'key': 'value', 'type': '[HybridConnection]'},
7971        'next_link': {'key': 'nextLink', 'type': 'str'},
7972    }
7973
7974    def __init__(
7975        self,
7976        **kwargs
7977    ):
7978        super(HybridConnectionCollection, self).__init__(**kwargs)
7979        self.value = kwargs['value']
7980        self.next_link = None
7981
7982
7983class HybridConnectionKey(ProxyOnlyResource):
7984    """Hybrid Connection key contract. This has the send key name and value for a Hybrid Connection.
7985
7986    Variables are only populated by the server, and will be ignored when sending a request.
7987
7988    :ivar id: Resource Id.
7989    :vartype id: str
7990    :ivar name: Resource Name.
7991    :vartype name: str
7992    :param kind: Kind of resource.
7993    :type kind: str
7994    :ivar type: Resource type.
7995    :vartype type: str
7996    :ivar system_data: The system metadata relating to this resource.
7997    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
7998    :ivar send_key_name: The name of the send key.
7999    :vartype send_key_name: str
8000    :ivar send_key_value: The value of the send key.
8001    :vartype send_key_value: str
8002    """
8003
8004    _validation = {
8005        'id': {'readonly': True},
8006        'name': {'readonly': True},
8007        'type': {'readonly': True},
8008        'system_data': {'readonly': True},
8009        'send_key_name': {'readonly': True},
8010        'send_key_value': {'readonly': True},
8011    }
8012
8013    _attribute_map = {
8014        'id': {'key': 'id', 'type': 'str'},
8015        'name': {'key': 'name', 'type': 'str'},
8016        'kind': {'key': 'kind', 'type': 'str'},
8017        'type': {'key': 'type', 'type': 'str'},
8018        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8019        'send_key_name': {'key': 'properties.sendKeyName', 'type': 'str'},
8020        'send_key_value': {'key': 'properties.sendKeyValue', 'type': 'str'},
8021    }
8022
8023    def __init__(
8024        self,
8025        **kwargs
8026    ):
8027        super(HybridConnectionKey, self).__init__(**kwargs)
8028        self.send_key_name = None
8029        self.send_key_value = None
8030
8031
8032class HybridConnectionLimits(ProxyOnlyResource):
8033    """Hybrid Connection limits contract. This is used to return the plan limits of Hybrid Connections.
8034
8035    Variables are only populated by the server, and will be ignored when sending a request.
8036
8037    :ivar id: Resource Id.
8038    :vartype id: str
8039    :ivar name: Resource Name.
8040    :vartype name: str
8041    :param kind: Kind of resource.
8042    :type kind: str
8043    :ivar type: Resource type.
8044    :vartype type: str
8045    :ivar system_data: The system metadata relating to this resource.
8046    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8047    :ivar current: The current number of Hybrid Connections.
8048    :vartype current: int
8049    :ivar maximum: The maximum number of Hybrid Connections allowed.
8050    :vartype maximum: int
8051    """
8052
8053    _validation = {
8054        'id': {'readonly': True},
8055        'name': {'readonly': True},
8056        'type': {'readonly': True},
8057        'system_data': {'readonly': True},
8058        'current': {'readonly': True},
8059        'maximum': {'readonly': True},
8060    }
8061
8062    _attribute_map = {
8063        'id': {'key': 'id', 'type': 'str'},
8064        'name': {'key': 'name', 'type': 'str'},
8065        'kind': {'key': 'kind', 'type': 'str'},
8066        'type': {'key': 'type', 'type': 'str'},
8067        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8068        'current': {'key': 'properties.current', 'type': 'int'},
8069        'maximum': {'key': 'properties.maximum', 'type': 'int'},
8070    }
8071
8072    def __init__(
8073        self,
8074        **kwargs
8075    ):
8076        super(HybridConnectionLimits, self).__init__(**kwargs)
8077        self.current = None
8078        self.maximum = None
8079
8080
8081class Identifier(ProxyOnlyResource):
8082    """A domain specific resource identifier.
8083
8084    Variables are only populated by the server, and will be ignored when sending a request.
8085
8086    :ivar id: Resource Id.
8087    :vartype id: str
8088    :ivar name: Resource Name.
8089    :vartype name: str
8090    :param kind: Kind of resource.
8091    :type kind: str
8092    :ivar type: Resource type.
8093    :vartype type: str
8094    :ivar system_data: The system metadata relating to this resource.
8095    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8096    :param value: String representation of the identity.
8097    :type value: str
8098    """
8099
8100    _validation = {
8101        'id': {'readonly': True},
8102        'name': {'readonly': True},
8103        'type': {'readonly': True},
8104        'system_data': {'readonly': True},
8105    }
8106
8107    _attribute_map = {
8108        'id': {'key': 'id', 'type': 'str'},
8109        'name': {'key': 'name', 'type': 'str'},
8110        'kind': {'key': 'kind', 'type': 'str'},
8111        'type': {'key': 'type', 'type': 'str'},
8112        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8113        'value': {'key': 'properties.id', 'type': 'str'},
8114    }
8115
8116    def __init__(
8117        self,
8118        **kwargs
8119    ):
8120        super(Identifier, self).__init__(**kwargs)
8121        self.value = kwargs.get('value', None)
8122
8123
8124class IdentifierCollection(msrest.serialization.Model):
8125    """Collection of identifiers.
8126
8127    Variables are only populated by the server, and will be ignored when sending a request.
8128
8129    All required parameters must be populated in order to send to Azure.
8130
8131    :param value: Required. Collection of resources.
8132    :type value: list[~azure.mgmt.web.v2020_09_01.models.Identifier]
8133    :ivar next_link: Link to next page of resources.
8134    :vartype next_link: str
8135    """
8136
8137    _validation = {
8138        'value': {'required': True},
8139        'next_link': {'readonly': True},
8140    }
8141
8142    _attribute_map = {
8143        'value': {'key': 'value', 'type': '[Identifier]'},
8144        'next_link': {'key': 'nextLink', 'type': 'str'},
8145    }
8146
8147    def __init__(
8148        self,
8149        **kwargs
8150    ):
8151        super(IdentifierCollection, self).__init__(**kwargs)
8152        self.value = kwargs['value']
8153        self.next_link = None
8154
8155
8156class IdentityProviders(ProxyOnlyResource):
8157    """IdentityProviders.
8158
8159    Variables are only populated by the server, and will be ignored when sending a request.
8160
8161    :ivar id: Resource Id.
8162    :vartype id: str
8163    :ivar name: Resource Name.
8164    :vartype name: str
8165    :param kind: Kind of resource.
8166    :type kind: str
8167    :ivar type: Resource type.
8168    :vartype type: str
8169    :ivar system_data: The system metadata relating to this resource.
8170    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8171    :param azure_active_directory:
8172    :type azure_active_directory: ~azure.mgmt.web.v2020_09_01.models.AzureActiveDirectory
8173    :param facebook:
8174    :type facebook: ~azure.mgmt.web.v2020_09_01.models.Facebook
8175    :param git_hub:
8176    :type git_hub: ~azure.mgmt.web.v2020_09_01.models.GitHub
8177    :param google:
8178    :type google: ~azure.mgmt.web.v2020_09_01.models.Google
8179    :param twitter:
8180    :type twitter: ~azure.mgmt.web.v2020_09_01.models.Twitter
8181    :param custom_open_id_connect_providers: Dictionary of :code:`<CustomOpenIdConnectProvider>`.
8182    :type custom_open_id_connect_providers: dict[str,
8183     ~azure.mgmt.web.v2020_09_01.models.CustomOpenIdConnectProvider]
8184    """
8185
8186    _validation = {
8187        'id': {'readonly': True},
8188        'name': {'readonly': True},
8189        'type': {'readonly': True},
8190        'system_data': {'readonly': True},
8191    }
8192
8193    _attribute_map = {
8194        'id': {'key': 'id', 'type': 'str'},
8195        'name': {'key': 'name', 'type': 'str'},
8196        'kind': {'key': 'kind', 'type': 'str'},
8197        'type': {'key': 'type', 'type': 'str'},
8198        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8199        'azure_active_directory': {'key': 'properties.azureActiveDirectory', 'type': 'AzureActiveDirectory'},
8200        'facebook': {'key': 'properties.facebook', 'type': 'Facebook'},
8201        'git_hub': {'key': 'properties.gitHub', 'type': 'GitHub'},
8202        'google': {'key': 'properties.google', 'type': 'Google'},
8203        'twitter': {'key': 'properties.twitter', 'type': 'Twitter'},
8204        'custom_open_id_connect_providers': {'key': 'properties.customOpenIdConnectProviders', 'type': '{CustomOpenIdConnectProvider}'},
8205    }
8206
8207    def __init__(
8208        self,
8209        **kwargs
8210    ):
8211        super(IdentityProviders, self).__init__(**kwargs)
8212        self.azure_active_directory = kwargs.get('azure_active_directory', None)
8213        self.facebook = kwargs.get('facebook', None)
8214        self.git_hub = kwargs.get('git_hub', None)
8215        self.google = kwargs.get('google', None)
8216        self.twitter = kwargs.get('twitter', None)
8217        self.custom_open_id_connect_providers = kwargs.get('custom_open_id_connect_providers', None)
8218
8219
8220class InboundEnvironmentEndpoint(msrest.serialization.Model):
8221    """The IP Addresses and Ports that require inbound network access to and within the subnet of the App Service Environment.
8222
8223    :param description: Short text describing the purpose of the network traffic.
8224    :type description: str
8225    :param endpoints: The IP addresses that network traffic will originate from in cidr notation.
8226    :type endpoints: list[str]
8227    :param ports: The ports that network traffic will arrive to the App Service Environment at.
8228    :type ports: list[str]
8229    """
8230
8231    _attribute_map = {
8232        'description': {'key': 'description', 'type': 'str'},
8233        'endpoints': {'key': 'endpoints', 'type': '[str]'},
8234        'ports': {'key': 'ports', 'type': '[str]'},
8235    }
8236
8237    def __init__(
8238        self,
8239        **kwargs
8240    ):
8241        super(InboundEnvironmentEndpoint, self).__init__(**kwargs)
8242        self.description = kwargs.get('description', None)
8243        self.endpoints = kwargs.get('endpoints', None)
8244        self.ports = kwargs.get('ports', None)
8245
8246
8247class InboundEnvironmentEndpointCollection(msrest.serialization.Model):
8248    """Collection of Inbound Environment Endpoints.
8249
8250    Variables are only populated by the server, and will be ignored when sending a request.
8251
8252    All required parameters must be populated in order to send to Azure.
8253
8254    :param value: Required. Collection of resources.
8255    :type value: list[~azure.mgmt.web.v2020_09_01.models.InboundEnvironmentEndpoint]
8256    :ivar next_link: Link to next page of resources.
8257    :vartype next_link: str
8258    """
8259
8260    _validation = {
8261        'value': {'required': True},
8262        'next_link': {'readonly': True},
8263    }
8264
8265    _attribute_map = {
8266        'value': {'key': 'value', 'type': '[InboundEnvironmentEndpoint]'},
8267        'next_link': {'key': 'nextLink', 'type': 'str'},
8268    }
8269
8270    def __init__(
8271        self,
8272        **kwargs
8273    ):
8274        super(InboundEnvironmentEndpointCollection, self).__init__(**kwargs)
8275        self.value = kwargs['value']
8276        self.next_link = None
8277
8278
8279class IpSecurityRestriction(msrest.serialization.Model):
8280    """IP security restriction on an app.
8281
8282    :param ip_address: IP address the security restriction is valid for.
8283     It can be in form of pure ipv4 address (required SubnetMask property) or
8284     CIDR notation such as ipv4/mask (leading bit match). For CIDR,
8285     SubnetMask property must not be specified.
8286    :type ip_address: str
8287    :param subnet_mask: Subnet mask for the range of IP addresses the restriction is valid for.
8288    :type subnet_mask: str
8289    :param vnet_subnet_resource_id: Virtual network resource id.
8290    :type vnet_subnet_resource_id: str
8291    :param vnet_traffic_tag: (internal) Vnet traffic tag.
8292    :type vnet_traffic_tag: int
8293    :param subnet_traffic_tag: (internal) Subnet traffic tag.
8294    :type subnet_traffic_tag: int
8295    :param action: Allow or Deny access for this IP range.
8296    :type action: str
8297    :param tag: Defines what this IP filter will be used for. This is to support IP filtering on
8298     proxies. Possible values include: "Default", "XffProxy", "ServiceTag".
8299    :type tag: str or ~azure.mgmt.web.v2020_09_01.models.IpFilterTag
8300    :param priority: Priority of IP restriction rule.
8301    :type priority: int
8302    :param name: IP restriction rule name.
8303    :type name: str
8304    :param description: IP restriction rule description.
8305    :type description: str
8306    :param headers: IP restriction rule headers.
8307     X-Forwarded-Host
8308     (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).
8309     The matching logic is ..
8310
8311
8312     * If the property is null or empty (default), all hosts(or lack of) are allowed.
8313     * A value is compared using ordinal-ignore-case (excluding port number).
8314     * Subdomain wildcards are permitted but don't match the root domain. For example,
8315     *.contoso.com matches the subdomain foo.contoso.com
8316       but not the root domain contoso.com or multi-level foo.bar.contoso.com
8317     * Unicode host names are allowed but are converted to Punycode for matching.
8318
8319     X-Forwarded-For
8320     (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).
8321     The matching logic is ..
8322
8323
8324     * If the property is null or empty (default), any forwarded-for chains (or lack of) are
8325     allowed.
8326     * If any address (excluding port number) in the chain (comma separated) matches the CIDR
8327     defined by the property.
8328
8329     X-Azure-FDID and X-FD-HealthProbe.
8330     The matching logic is exact match.
8331    :type headers: dict[str, list[str]]
8332    """
8333
8334    _attribute_map = {
8335        'ip_address': {'key': 'ipAddress', 'type': 'str'},
8336        'subnet_mask': {'key': 'subnetMask', 'type': 'str'},
8337        'vnet_subnet_resource_id': {'key': 'vnetSubnetResourceId', 'type': 'str'},
8338        'vnet_traffic_tag': {'key': 'vnetTrafficTag', 'type': 'int'},
8339        'subnet_traffic_tag': {'key': 'subnetTrafficTag', 'type': 'int'},
8340        'action': {'key': 'action', 'type': 'str'},
8341        'tag': {'key': 'tag', 'type': 'str'},
8342        'priority': {'key': 'priority', 'type': 'int'},
8343        'name': {'key': 'name', 'type': 'str'},
8344        'description': {'key': 'description', 'type': 'str'},
8345        'headers': {'key': 'headers', 'type': '{[str]}'},
8346    }
8347
8348    def __init__(
8349        self,
8350        **kwargs
8351    ):
8352        super(IpSecurityRestriction, self).__init__(**kwargs)
8353        self.ip_address = kwargs.get('ip_address', None)
8354        self.subnet_mask = kwargs.get('subnet_mask', None)
8355        self.vnet_subnet_resource_id = kwargs.get('vnet_subnet_resource_id', None)
8356        self.vnet_traffic_tag = kwargs.get('vnet_traffic_tag', None)
8357        self.subnet_traffic_tag = kwargs.get('subnet_traffic_tag', None)
8358        self.action = kwargs.get('action', None)
8359        self.tag = kwargs.get('tag', None)
8360        self.priority = kwargs.get('priority', None)
8361        self.name = kwargs.get('name', None)
8362        self.description = kwargs.get('description', None)
8363        self.headers = kwargs.get('headers', None)
8364
8365
8366class JwtClaimChecks(ProxyOnlyResource):
8367    """JwtClaimChecks.
8368
8369    Variables are only populated by the server, and will be ignored when sending a request.
8370
8371    :ivar id: Resource Id.
8372    :vartype id: str
8373    :ivar name: Resource Name.
8374    :vartype name: str
8375    :param kind: Kind of resource.
8376    :type kind: str
8377    :ivar type: Resource type.
8378    :vartype type: str
8379    :ivar system_data: The system metadata relating to this resource.
8380    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8381    :param allowed_groups:
8382    :type allowed_groups: list[str]
8383    :param allowed_client_applications:
8384    :type allowed_client_applications: list[str]
8385    """
8386
8387    _validation = {
8388        'id': {'readonly': True},
8389        'name': {'readonly': True},
8390        'type': {'readonly': True},
8391        'system_data': {'readonly': True},
8392    }
8393
8394    _attribute_map = {
8395        'id': {'key': 'id', 'type': 'str'},
8396        'name': {'key': 'name', 'type': 'str'},
8397        'kind': {'key': 'kind', 'type': 'str'},
8398        'type': {'key': 'type', 'type': 'str'},
8399        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8400        'allowed_groups': {'key': 'properties.allowedGroups', 'type': '[str]'},
8401        'allowed_client_applications': {'key': 'properties.allowedClientApplications', 'type': '[str]'},
8402    }
8403
8404    def __init__(
8405        self,
8406        **kwargs
8407    ):
8408        super(JwtClaimChecks, self).__init__(**kwargs)
8409        self.allowed_groups = kwargs.get('allowed_groups', None)
8410        self.allowed_client_applications = kwargs.get('allowed_client_applications', None)
8411
8412
8413class KeyInfo(msrest.serialization.Model):
8414    """Function key info.
8415
8416    :param name: Key name.
8417    :type name: str
8418    :param value: Key value.
8419    :type value: str
8420    """
8421
8422    _attribute_map = {
8423        'name': {'key': 'name', 'type': 'str'},
8424        'value': {'key': 'value', 'type': 'str'},
8425    }
8426
8427    def __init__(
8428        self,
8429        **kwargs
8430    ):
8431        super(KeyInfo, self).__init__(**kwargs)
8432        self.name = kwargs.get('name', None)
8433        self.value = kwargs.get('value', None)
8434
8435
8436class LocalizableString(msrest.serialization.Model):
8437    """Localizable string object containing the name and a localized value.
8438
8439    :param value: Non-localized name.
8440    :type value: str
8441    :param localized_value: Localized name.
8442    :type localized_value: str
8443    """
8444
8445    _attribute_map = {
8446        'value': {'key': 'value', 'type': 'str'},
8447        'localized_value': {'key': 'localizedValue', 'type': 'str'},
8448    }
8449
8450    def __init__(
8451        self,
8452        **kwargs
8453    ):
8454        super(LocalizableString, self).__init__(**kwargs)
8455        self.value = kwargs.get('value', None)
8456        self.localized_value = kwargs.get('localized_value', None)
8457
8458
8459class Login(ProxyOnlyResource):
8460    """Login.
8461
8462    Variables are only populated by the server, and will be ignored when sending a request.
8463
8464    :ivar id: Resource Id.
8465    :vartype id: str
8466    :ivar name: Resource Name.
8467    :vartype name: str
8468    :param kind: Kind of resource.
8469    :type kind: str
8470    :ivar type: Resource type.
8471    :vartype type: str
8472    :ivar system_data: The system metadata relating to this resource.
8473    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8474    :param routes:
8475    :type routes: ~azure.mgmt.web.v2020_09_01.models.LoginRoutes
8476    :param token_store:
8477    :type token_store: ~azure.mgmt.web.v2020_09_01.models.TokenStore
8478    :param preserve_url_fragments_for_logins:
8479    :type preserve_url_fragments_for_logins: bool
8480    :param allowed_external_redirect_urls:
8481    :type allowed_external_redirect_urls: list[str]
8482    :param cookie_expiration:
8483    :type cookie_expiration: ~azure.mgmt.web.v2020_09_01.models.CookieExpiration
8484    :param nonce:
8485    :type nonce: ~azure.mgmt.web.v2020_09_01.models.Nonce
8486    """
8487
8488    _validation = {
8489        'id': {'readonly': True},
8490        'name': {'readonly': True},
8491        'type': {'readonly': True},
8492        'system_data': {'readonly': True},
8493    }
8494
8495    _attribute_map = {
8496        'id': {'key': 'id', 'type': 'str'},
8497        'name': {'key': 'name', 'type': 'str'},
8498        'kind': {'key': 'kind', 'type': 'str'},
8499        'type': {'key': 'type', 'type': 'str'},
8500        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8501        'routes': {'key': 'properties.routes', 'type': 'LoginRoutes'},
8502        'token_store': {'key': 'properties.tokenStore', 'type': 'TokenStore'},
8503        'preserve_url_fragments_for_logins': {'key': 'properties.preserveUrlFragmentsForLogins', 'type': 'bool'},
8504        'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'},
8505        'cookie_expiration': {'key': 'properties.cookieExpiration', 'type': 'CookieExpiration'},
8506        'nonce': {'key': 'properties.nonce', 'type': 'Nonce'},
8507    }
8508
8509    def __init__(
8510        self,
8511        **kwargs
8512    ):
8513        super(Login, self).__init__(**kwargs)
8514        self.routes = kwargs.get('routes', None)
8515        self.token_store = kwargs.get('token_store', None)
8516        self.preserve_url_fragments_for_logins = kwargs.get('preserve_url_fragments_for_logins', None)
8517        self.allowed_external_redirect_urls = kwargs.get('allowed_external_redirect_urls', None)
8518        self.cookie_expiration = kwargs.get('cookie_expiration', None)
8519        self.nonce = kwargs.get('nonce', None)
8520
8521
8522class LoginRoutes(ProxyOnlyResource):
8523    """LoginRoutes.
8524
8525    Variables are only populated by the server, and will be ignored when sending a request.
8526
8527    :ivar id: Resource Id.
8528    :vartype id: str
8529    :ivar name: Resource Name.
8530    :vartype name: str
8531    :param kind: Kind of resource.
8532    :type kind: str
8533    :ivar type: Resource type.
8534    :vartype type: str
8535    :ivar system_data: The system metadata relating to this resource.
8536    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8537    :param logout_endpoint:
8538    :type logout_endpoint: str
8539    """
8540
8541    _validation = {
8542        'id': {'readonly': True},
8543        'name': {'readonly': True},
8544        'type': {'readonly': True},
8545        'system_data': {'readonly': True},
8546    }
8547
8548    _attribute_map = {
8549        'id': {'key': 'id', 'type': 'str'},
8550        'name': {'key': 'name', 'type': 'str'},
8551        'kind': {'key': 'kind', 'type': 'str'},
8552        'type': {'key': 'type', 'type': 'str'},
8553        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8554        'logout_endpoint': {'key': 'properties.logoutEndpoint', 'type': 'str'},
8555    }
8556
8557    def __init__(
8558        self,
8559        **kwargs
8560    ):
8561        super(LoginRoutes, self).__init__(**kwargs)
8562        self.logout_endpoint = kwargs.get('logout_endpoint', None)
8563
8564
8565class LoginScopes(ProxyOnlyResource):
8566    """LoginScopes.
8567
8568    Variables are only populated by the server, and will be ignored when sending a request.
8569
8570    :ivar id: Resource Id.
8571    :vartype id: str
8572    :ivar name: Resource Name.
8573    :vartype name: str
8574    :param kind: Kind of resource.
8575    :type kind: str
8576    :ivar type: Resource type.
8577    :vartype type: str
8578    :ivar system_data: The system metadata relating to this resource.
8579    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8580    :param scopes:
8581    :type scopes: list[str]
8582    """
8583
8584    _validation = {
8585        'id': {'readonly': True},
8586        'name': {'readonly': True},
8587        'type': {'readonly': True},
8588        'system_data': {'readonly': True},
8589    }
8590
8591    _attribute_map = {
8592        'id': {'key': 'id', 'type': 'str'},
8593        'name': {'key': 'name', 'type': 'str'},
8594        'kind': {'key': 'kind', 'type': 'str'},
8595        'type': {'key': 'type', 'type': 'str'},
8596        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8597        'scopes': {'key': 'properties.scopes', 'type': '[str]'},
8598    }
8599
8600    def __init__(
8601        self,
8602        **kwargs
8603    ):
8604        super(LoginScopes, self).__init__(**kwargs)
8605        self.scopes = kwargs.get('scopes', None)
8606
8607
8608class LogSpecification(msrest.serialization.Model):
8609    """Log Definition of a single resource metric.
8610
8611    :param name:
8612    :type name: str
8613    :param display_name:
8614    :type display_name: str
8615    :param blob_duration:
8616    :type blob_duration: str
8617    :param log_filter_pattern:
8618    :type log_filter_pattern: str
8619    """
8620
8621    _attribute_map = {
8622        'name': {'key': 'name', 'type': 'str'},
8623        'display_name': {'key': 'displayName', 'type': 'str'},
8624        'blob_duration': {'key': 'blobDuration', 'type': 'str'},
8625        'log_filter_pattern': {'key': 'logFilterPattern', 'type': 'str'},
8626    }
8627
8628    def __init__(
8629        self,
8630        **kwargs
8631    ):
8632        super(LogSpecification, self).__init__(**kwargs)
8633        self.name = kwargs.get('name', None)
8634        self.display_name = kwargs.get('display_name', None)
8635        self.blob_duration = kwargs.get('blob_duration', None)
8636        self.log_filter_pattern = kwargs.get('log_filter_pattern', None)
8637
8638
8639class ManagedServiceIdentity(msrest.serialization.Model):
8640    """Managed service identity.
8641
8642    Variables are only populated by the server, and will be ignored when sending a request.
8643
8644    :param type: Type of managed service identity. Possible values include: "SystemAssigned",
8645     "UserAssigned", "SystemAssigned, UserAssigned", "None".
8646    :type type: str or ~azure.mgmt.web.v2020_09_01.models.ManagedServiceIdentityType
8647    :ivar tenant_id: Tenant of managed service identity.
8648    :vartype tenant_id: str
8649    :ivar principal_id: Principal Id of managed service identity.
8650    :vartype principal_id: str
8651    :param user_assigned_identities: The list of user assigned identities associated with the
8652     resource. The user identity dictionary key references will be ARM resource ids in the form:
8653     '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}.
8654    :type user_assigned_identities: dict[str,
8655     ~azure.mgmt.web.v2020_09_01.models.Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties]
8656    """
8657
8658    _validation = {
8659        'tenant_id': {'readonly': True},
8660        'principal_id': {'readonly': True},
8661    }
8662
8663    _attribute_map = {
8664        'type': {'key': 'type', 'type': 'str'},
8665        'tenant_id': {'key': 'tenantId', 'type': 'str'},
8666        'principal_id': {'key': 'principalId', 'type': 'str'},
8667        'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{Components1Jq1T4ISchemasManagedserviceidentityPropertiesUserassignedidentitiesAdditionalproperties}'},
8668    }
8669
8670    def __init__(
8671        self,
8672        **kwargs
8673    ):
8674        super(ManagedServiceIdentity, self).__init__(**kwargs)
8675        self.type = kwargs.get('type', None)
8676        self.tenant_id = None
8677        self.principal_id = None
8678        self.user_assigned_identities = kwargs.get('user_assigned_identities', None)
8679
8680
8681class MetricAvailability(msrest.serialization.Model):
8682    """Retention policy of a resource metric.
8683
8684    :param time_grain:
8685    :type time_grain: str
8686    :param blob_duration:
8687    :type blob_duration: str
8688    """
8689
8690    _attribute_map = {
8691        'time_grain': {'key': 'timeGrain', 'type': 'str'},
8692        'blob_duration': {'key': 'blobDuration', 'type': 'str'},
8693    }
8694
8695    def __init__(
8696        self,
8697        **kwargs
8698    ):
8699        super(MetricAvailability, self).__init__(**kwargs)
8700        self.time_grain = kwargs.get('time_grain', None)
8701        self.blob_duration = kwargs.get('blob_duration', None)
8702
8703
8704class MetricSpecification(msrest.serialization.Model):
8705    """Definition of a single resource metric.
8706
8707    :param name:
8708    :type name: str
8709    :param display_name:
8710    :type display_name: str
8711    :param display_description:
8712    :type display_description: str
8713    :param unit:
8714    :type unit: str
8715    :param aggregation_type:
8716    :type aggregation_type: str
8717    :param supports_instance_level_aggregation:
8718    :type supports_instance_level_aggregation: bool
8719    :param enable_regional_mdm_account:
8720    :type enable_regional_mdm_account: bool
8721    :param source_mdm_account:
8722    :type source_mdm_account: str
8723    :param source_mdm_namespace:
8724    :type source_mdm_namespace: str
8725    :param metric_filter_pattern:
8726    :type metric_filter_pattern: str
8727    :param fill_gap_with_zero:
8728    :type fill_gap_with_zero: bool
8729    :param is_internal:
8730    :type is_internal: bool
8731    :param dimensions:
8732    :type dimensions: list[~azure.mgmt.web.v2020_09_01.models.Dimension]
8733    :param category:
8734    :type category: str
8735    :param availabilities:
8736    :type availabilities: list[~azure.mgmt.web.v2020_09_01.models.MetricAvailability]
8737    :param supported_time_grain_types:
8738    :type supported_time_grain_types: list[str]
8739    :param supported_aggregation_types:
8740    :type supported_aggregation_types: list[str]
8741    """
8742
8743    _attribute_map = {
8744        'name': {'key': 'name', 'type': 'str'},
8745        'display_name': {'key': 'displayName', 'type': 'str'},
8746        'display_description': {'key': 'displayDescription', 'type': 'str'},
8747        'unit': {'key': 'unit', 'type': 'str'},
8748        'aggregation_type': {'key': 'aggregationType', 'type': 'str'},
8749        'supports_instance_level_aggregation': {'key': 'supportsInstanceLevelAggregation', 'type': 'bool'},
8750        'enable_regional_mdm_account': {'key': 'enableRegionalMdmAccount', 'type': 'bool'},
8751        'source_mdm_account': {'key': 'sourceMdmAccount', 'type': 'str'},
8752        'source_mdm_namespace': {'key': 'sourceMdmNamespace', 'type': 'str'},
8753        'metric_filter_pattern': {'key': 'metricFilterPattern', 'type': 'str'},
8754        'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'},
8755        'is_internal': {'key': 'isInternal', 'type': 'bool'},
8756        'dimensions': {'key': 'dimensions', 'type': '[Dimension]'},
8757        'category': {'key': 'category', 'type': 'str'},
8758        'availabilities': {'key': 'availabilities', 'type': '[MetricAvailability]'},
8759        'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'},
8760        'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'},
8761    }
8762
8763    def __init__(
8764        self,
8765        **kwargs
8766    ):
8767        super(MetricSpecification, self).__init__(**kwargs)
8768        self.name = kwargs.get('name', None)
8769        self.display_name = kwargs.get('display_name', None)
8770        self.display_description = kwargs.get('display_description', None)
8771        self.unit = kwargs.get('unit', None)
8772        self.aggregation_type = kwargs.get('aggregation_type', None)
8773        self.supports_instance_level_aggregation = kwargs.get('supports_instance_level_aggregation', None)
8774        self.enable_regional_mdm_account = kwargs.get('enable_regional_mdm_account', None)
8775        self.source_mdm_account = kwargs.get('source_mdm_account', None)
8776        self.source_mdm_namespace = kwargs.get('source_mdm_namespace', None)
8777        self.metric_filter_pattern = kwargs.get('metric_filter_pattern', None)
8778        self.fill_gap_with_zero = kwargs.get('fill_gap_with_zero', None)
8779        self.is_internal = kwargs.get('is_internal', None)
8780        self.dimensions = kwargs.get('dimensions', None)
8781        self.category = kwargs.get('category', None)
8782        self.availabilities = kwargs.get('availabilities', None)
8783        self.supported_time_grain_types = kwargs.get('supported_time_grain_types', None)
8784        self.supported_aggregation_types = kwargs.get('supported_aggregation_types', None)
8785
8786
8787class MigrateMySqlRequest(ProxyOnlyResource):
8788    """MySQL migration request.
8789
8790    Variables are only populated by the server, and will be ignored when sending a request.
8791
8792    :ivar id: Resource Id.
8793    :vartype id: str
8794    :ivar name: Resource Name.
8795    :vartype name: str
8796    :param kind: Kind of resource.
8797    :type kind: str
8798    :ivar type: Resource type.
8799    :vartype type: str
8800    :ivar system_data: The system metadata relating to this resource.
8801    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8802    :param connection_string: Connection string to the remote MySQL database.
8803    :type connection_string: str
8804    :param migration_type: The type of migration operation to be done. Possible values include:
8805     "LocalToRemote", "RemoteToLocal".
8806    :type migration_type: str or ~azure.mgmt.web.v2020_09_01.models.MySqlMigrationType
8807    """
8808
8809    _validation = {
8810        'id': {'readonly': True},
8811        'name': {'readonly': True},
8812        'type': {'readonly': True},
8813        'system_data': {'readonly': True},
8814    }
8815
8816    _attribute_map = {
8817        'id': {'key': 'id', 'type': 'str'},
8818        'name': {'key': 'name', 'type': 'str'},
8819        'kind': {'key': 'kind', 'type': 'str'},
8820        'type': {'key': 'type', 'type': 'str'},
8821        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8822        'connection_string': {'key': 'properties.connectionString', 'type': 'str'},
8823        'migration_type': {'key': 'properties.migrationType', 'type': 'str'},
8824    }
8825
8826    def __init__(
8827        self,
8828        **kwargs
8829    ):
8830        super(MigrateMySqlRequest, self).__init__(**kwargs)
8831        self.connection_string = kwargs.get('connection_string', None)
8832        self.migration_type = kwargs.get('migration_type', None)
8833
8834
8835class MigrateMySqlStatus(ProxyOnlyResource):
8836    """MySQL migration status.
8837
8838    Variables are only populated by the server, and will be ignored when sending a request.
8839
8840    :ivar id: Resource Id.
8841    :vartype id: str
8842    :ivar name: Resource Name.
8843    :vartype name: str
8844    :param kind: Kind of resource.
8845    :type kind: str
8846    :ivar type: Resource type.
8847    :vartype type: str
8848    :ivar system_data: The system metadata relating to this resource.
8849    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8850    :ivar migration_operation_status: Status of the migration task. Possible values include:
8851     "InProgress", "Failed", "Succeeded", "TimedOut", "Created".
8852    :vartype migration_operation_status: str or ~azure.mgmt.web.v2020_09_01.models.OperationStatus
8853    :ivar operation_id: Operation ID for the migration task.
8854    :vartype operation_id: str
8855    :ivar local_my_sql_enabled: True if the web app has in app MySql enabled.
8856    :vartype local_my_sql_enabled: bool
8857    """
8858
8859    _validation = {
8860        'id': {'readonly': True},
8861        'name': {'readonly': True},
8862        'type': {'readonly': True},
8863        'system_data': {'readonly': True},
8864        'migration_operation_status': {'readonly': True},
8865        'operation_id': {'readonly': True},
8866        'local_my_sql_enabled': {'readonly': True},
8867    }
8868
8869    _attribute_map = {
8870        'id': {'key': 'id', 'type': 'str'},
8871        'name': {'key': 'name', 'type': 'str'},
8872        'kind': {'key': 'kind', 'type': 'str'},
8873        'type': {'key': 'type', 'type': 'str'},
8874        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8875        'migration_operation_status': {'key': 'properties.migrationOperationStatus', 'type': 'str'},
8876        'operation_id': {'key': 'properties.operationId', 'type': 'str'},
8877        'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'},
8878    }
8879
8880    def __init__(
8881        self,
8882        **kwargs
8883    ):
8884        super(MigrateMySqlStatus, self).__init__(**kwargs)
8885        self.migration_operation_status = None
8886        self.operation_id = None
8887        self.local_my_sql_enabled = None
8888
8889
8890class MSDeploy(ProxyOnlyResource):
8891    """MSDeploy ARM PUT information.
8892
8893    Variables are only populated by the server, and will be ignored when sending a request.
8894
8895    :ivar id: Resource Id.
8896    :vartype id: str
8897    :ivar name: Resource Name.
8898    :vartype name: str
8899    :param kind: Kind of resource.
8900    :type kind: str
8901    :ivar type: Resource type.
8902    :vartype type: str
8903    :ivar system_data: The system metadata relating to this resource.
8904    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8905    :param package_uri: Package URI.
8906    :type package_uri: str
8907    :param connection_string: SQL Connection String.
8908    :type connection_string: str
8909    :param db_type: Database Type.
8910    :type db_type: str
8911    :param set_parameters_xml_file_uri: URI of MSDeploy Parameters file. Must not be set if
8912     SetParameters is used.
8913    :type set_parameters_xml_file_uri: str
8914    :param set_parameters: MSDeploy Parameters. Must not be set if SetParametersXmlFileUri is used.
8915    :type set_parameters: dict[str, str]
8916    :param skip_app_data: Controls whether the MSDeploy operation skips the App_Data directory.
8917     If set to :code:`<code>true</code>`, the existing App_Data directory on the destination
8918     will not be deleted, and any App_Data directory in the source will be ignored.
8919     Setting is :code:`<code>false</code>` by default.
8920    :type skip_app_data: bool
8921    :param app_offline: Sets the AppOffline rule while the MSDeploy operation executes.
8922     Setting is :code:`<code>false</code>` by default.
8923    :type app_offline: bool
8924    """
8925
8926    _validation = {
8927        'id': {'readonly': True},
8928        'name': {'readonly': True},
8929        'type': {'readonly': True},
8930        'system_data': {'readonly': True},
8931    }
8932
8933    _attribute_map = {
8934        'id': {'key': 'id', 'type': 'str'},
8935        'name': {'key': 'name', 'type': 'str'},
8936        'kind': {'key': 'kind', 'type': 'str'},
8937        'type': {'key': 'type', 'type': 'str'},
8938        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8939        'package_uri': {'key': 'properties.packageUri', 'type': 'str'},
8940        'connection_string': {'key': 'properties.connectionString', 'type': 'str'},
8941        'db_type': {'key': 'properties.dbType', 'type': 'str'},
8942        'set_parameters_xml_file_uri': {'key': 'properties.setParametersXmlFileUri', 'type': 'str'},
8943        'set_parameters': {'key': 'properties.setParameters', 'type': '{str}'},
8944        'skip_app_data': {'key': 'properties.skipAppData', 'type': 'bool'},
8945        'app_offline': {'key': 'properties.appOffline', 'type': 'bool'},
8946    }
8947
8948    def __init__(
8949        self,
8950        **kwargs
8951    ):
8952        super(MSDeploy, self).__init__(**kwargs)
8953        self.package_uri = kwargs.get('package_uri', None)
8954        self.connection_string = kwargs.get('connection_string', None)
8955        self.db_type = kwargs.get('db_type', None)
8956        self.set_parameters_xml_file_uri = kwargs.get('set_parameters_xml_file_uri', None)
8957        self.set_parameters = kwargs.get('set_parameters', None)
8958        self.skip_app_data = kwargs.get('skip_app_data', None)
8959        self.app_offline = kwargs.get('app_offline', None)
8960
8961
8962class MSDeployLog(ProxyOnlyResource):
8963    """MSDeploy log.
8964
8965    Variables are only populated by the server, and will be ignored when sending a request.
8966
8967    :ivar id: Resource Id.
8968    :vartype id: str
8969    :ivar name: Resource Name.
8970    :vartype name: str
8971    :param kind: Kind of resource.
8972    :type kind: str
8973    :ivar type: Resource type.
8974    :vartype type: str
8975    :ivar system_data: The system metadata relating to this resource.
8976    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
8977    :ivar entries: List of log entry messages.
8978    :vartype entries: list[~azure.mgmt.web.v2020_09_01.models.MSDeployLogEntry]
8979    """
8980
8981    _validation = {
8982        'id': {'readonly': True},
8983        'name': {'readonly': True},
8984        'type': {'readonly': True},
8985        'system_data': {'readonly': True},
8986        'entries': {'readonly': True},
8987    }
8988
8989    _attribute_map = {
8990        'id': {'key': 'id', 'type': 'str'},
8991        'name': {'key': 'name', 'type': 'str'},
8992        'kind': {'key': 'kind', 'type': 'str'},
8993        'type': {'key': 'type', 'type': 'str'},
8994        'system_data': {'key': 'systemData', 'type': 'SystemData'},
8995        'entries': {'key': 'properties.entries', 'type': '[MSDeployLogEntry]'},
8996    }
8997
8998    def __init__(
8999        self,
9000        **kwargs
9001    ):
9002        super(MSDeployLog, self).__init__(**kwargs)
9003        self.entries = None
9004
9005
9006class MSDeployLogEntry(msrest.serialization.Model):
9007    """MSDeploy log entry.
9008
9009    Variables are only populated by the server, and will be ignored when sending a request.
9010
9011    :ivar time: Timestamp of log entry.
9012    :vartype time: ~datetime.datetime
9013    :ivar type: Log entry type. Possible values include: "Message", "Warning", "Error".
9014    :vartype type: str or ~azure.mgmt.web.v2020_09_01.models.MSDeployLogEntryType
9015    :ivar message: Log entry message.
9016    :vartype message: str
9017    """
9018
9019    _validation = {
9020        'time': {'readonly': True},
9021        'type': {'readonly': True},
9022        'message': {'readonly': True},
9023    }
9024
9025    _attribute_map = {
9026        'time': {'key': 'time', 'type': 'iso-8601'},
9027        'type': {'key': 'type', 'type': 'str'},
9028        'message': {'key': 'message', 'type': 'str'},
9029    }
9030
9031    def __init__(
9032        self,
9033        **kwargs
9034    ):
9035        super(MSDeployLogEntry, self).__init__(**kwargs)
9036        self.time = None
9037        self.type = None
9038        self.message = None
9039
9040
9041class MSDeployStatus(ProxyOnlyResource):
9042    """MSDeploy ARM response.
9043
9044    Variables are only populated by the server, and will be ignored when sending a request.
9045
9046    :ivar id: Resource Id.
9047    :vartype id: str
9048    :ivar name: Resource Name.
9049    :vartype name: str
9050    :param kind: Kind of resource.
9051    :type kind: str
9052    :ivar type: Resource type.
9053    :vartype type: str
9054    :ivar system_data: The system metadata relating to this resource.
9055    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9056    :ivar deployer: Username of deployer.
9057    :vartype deployer: str
9058    :ivar provisioning_state: Provisioning state. Possible values include: "accepted", "running",
9059     "succeeded", "failed", "canceled".
9060    :vartype provisioning_state: str or
9061     ~azure.mgmt.web.v2020_09_01.models.MSDeployProvisioningState
9062    :ivar start_time: Start time of deploy operation.
9063    :vartype start_time: ~datetime.datetime
9064    :ivar end_time: End time of deploy operation.
9065    :vartype end_time: ~datetime.datetime
9066    :ivar complete: Whether the deployment operation has completed.
9067    :vartype complete: bool
9068    """
9069
9070    _validation = {
9071        'id': {'readonly': True},
9072        'name': {'readonly': True},
9073        'type': {'readonly': True},
9074        'system_data': {'readonly': True},
9075        'deployer': {'readonly': True},
9076        'provisioning_state': {'readonly': True},
9077        'start_time': {'readonly': True},
9078        'end_time': {'readonly': True},
9079        'complete': {'readonly': True},
9080    }
9081
9082    _attribute_map = {
9083        'id': {'key': 'id', 'type': 'str'},
9084        'name': {'key': 'name', 'type': 'str'},
9085        'kind': {'key': 'kind', 'type': 'str'},
9086        'type': {'key': 'type', 'type': 'str'},
9087        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9088        'deployer': {'key': 'properties.deployer', 'type': 'str'},
9089        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
9090        'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'},
9091        'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'},
9092        'complete': {'key': 'properties.complete', 'type': 'bool'},
9093    }
9094
9095    def __init__(
9096        self,
9097        **kwargs
9098    ):
9099        super(MSDeployStatus, self).__init__(**kwargs)
9100        self.deployer = None
9101        self.provisioning_state = None
9102        self.start_time = None
9103        self.end_time = None
9104        self.complete = None
9105
9106
9107class NameIdentifier(msrest.serialization.Model):
9108    """Identifies an object.
9109
9110    :param name: Name of the object.
9111    :type name: str
9112    """
9113
9114    _attribute_map = {
9115        'name': {'key': 'name', 'type': 'str'},
9116    }
9117
9118    def __init__(
9119        self,
9120        **kwargs
9121    ):
9122        super(NameIdentifier, self).__init__(**kwargs)
9123        self.name = kwargs.get('name', None)
9124
9125
9126class NameIdentifierCollection(msrest.serialization.Model):
9127    """Collection of domain name identifiers.
9128
9129    Variables are only populated by the server, and will be ignored when sending a request.
9130
9131    All required parameters must be populated in order to send to Azure.
9132
9133    :param value: Required. Collection of resources.
9134    :type value: list[~azure.mgmt.web.v2020_09_01.models.NameIdentifier]
9135    :ivar next_link: Link to next page of resources.
9136    :vartype next_link: str
9137    """
9138
9139    _validation = {
9140        'value': {'required': True},
9141        'next_link': {'readonly': True},
9142    }
9143
9144    _attribute_map = {
9145        'value': {'key': 'value', 'type': '[NameIdentifier]'},
9146        'next_link': {'key': 'nextLink', 'type': 'str'},
9147    }
9148
9149    def __init__(
9150        self,
9151        **kwargs
9152    ):
9153        super(NameIdentifierCollection, self).__init__(**kwargs)
9154        self.value = kwargs['value']
9155        self.next_link = None
9156
9157
9158class NameValuePair(msrest.serialization.Model):
9159    """Name value pair.
9160
9161    :param name: Pair name.
9162    :type name: str
9163    :param value: Pair value.
9164    :type value: str
9165    """
9166
9167    _attribute_map = {
9168        'name': {'key': 'name', 'type': 'str'},
9169        'value': {'key': 'value', 'type': 'str'},
9170    }
9171
9172    def __init__(
9173        self,
9174        **kwargs
9175    ):
9176        super(NameValuePair, self).__init__(**kwargs)
9177        self.name = kwargs.get('name', None)
9178        self.value = kwargs.get('value', None)
9179
9180
9181class NetworkAccessControlEntry(msrest.serialization.Model):
9182    """Network access control entry.
9183
9184    :param action: Action object. Possible values include: "Permit", "Deny".
9185    :type action: str or ~azure.mgmt.web.v2020_09_01.models.AccessControlEntryAction
9186    :param description: Description of network access control entry.
9187    :type description: str
9188    :param order: Order of precedence.
9189    :type order: int
9190    :param remote_subnet: Remote subnet.
9191    :type remote_subnet: str
9192    """
9193
9194    _attribute_map = {
9195        'action': {'key': 'action', 'type': 'str'},
9196        'description': {'key': 'description', 'type': 'str'},
9197        'order': {'key': 'order', 'type': 'int'},
9198        'remote_subnet': {'key': 'remoteSubnet', 'type': 'str'},
9199    }
9200
9201    def __init__(
9202        self,
9203        **kwargs
9204    ):
9205        super(NetworkAccessControlEntry, self).__init__(**kwargs)
9206        self.action = kwargs.get('action', None)
9207        self.description = kwargs.get('description', None)
9208        self.order = kwargs.get('order', None)
9209        self.remote_subnet = kwargs.get('remote_subnet', None)
9210
9211
9212class NetworkFeatures(ProxyOnlyResource):
9213    """Full view of network features for an app (presently VNET integration and Hybrid Connections).
9214
9215    Variables are only populated by the server, and will be ignored when sending a request.
9216
9217    :ivar id: Resource Id.
9218    :vartype id: str
9219    :ivar name: Resource Name.
9220    :vartype name: str
9221    :param kind: Kind of resource.
9222    :type kind: str
9223    :ivar type: Resource type.
9224    :vartype type: str
9225    :ivar system_data: The system metadata relating to this resource.
9226    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9227    :ivar virtual_network_name: The Virtual Network name.
9228    :vartype virtual_network_name: str
9229    :ivar virtual_network_connection: The Virtual Network summary view.
9230    :vartype virtual_network_connection: ~azure.mgmt.web.v2020_09_01.models.VnetInfo
9231    :ivar hybrid_connections: The Hybrid Connections summary view.
9232    :vartype hybrid_connections:
9233     list[~azure.mgmt.web.v2020_09_01.models.RelayServiceConnectionEntity]
9234    :ivar hybrid_connections_v2: The Hybrid Connection V2 (Service Bus) view.
9235    :vartype hybrid_connections_v2: list[~azure.mgmt.web.v2020_09_01.models.HybridConnection]
9236    """
9237
9238    _validation = {
9239        'id': {'readonly': True},
9240        'name': {'readonly': True},
9241        'type': {'readonly': True},
9242        'system_data': {'readonly': True},
9243        'virtual_network_name': {'readonly': True},
9244        'virtual_network_connection': {'readonly': True},
9245        'hybrid_connections': {'readonly': True},
9246        'hybrid_connections_v2': {'readonly': True},
9247    }
9248
9249    _attribute_map = {
9250        'id': {'key': 'id', 'type': 'str'},
9251        'name': {'key': 'name', 'type': 'str'},
9252        'kind': {'key': 'kind', 'type': 'str'},
9253        'type': {'key': 'type', 'type': 'str'},
9254        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9255        'virtual_network_name': {'key': 'properties.virtualNetworkName', 'type': 'str'},
9256        'virtual_network_connection': {'key': 'properties.virtualNetworkConnection', 'type': 'VnetInfo'},
9257        'hybrid_connections': {'key': 'properties.hybridConnections', 'type': '[RelayServiceConnectionEntity]'},
9258        'hybrid_connections_v2': {'key': 'properties.hybridConnectionsV2', 'type': '[HybridConnection]'},
9259    }
9260
9261    def __init__(
9262        self,
9263        **kwargs
9264    ):
9265        super(NetworkFeatures, self).__init__(**kwargs)
9266        self.virtual_network_name = None
9267        self.virtual_network_connection = None
9268        self.hybrid_connections = None
9269        self.hybrid_connections_v2 = None
9270
9271
9272class NetworkTrace(msrest.serialization.Model):
9273    """Network trace.
9274
9275    :param path: Local file path for the captured network trace file.
9276    :type path: str
9277    :param status: Current status of the network trace operation, same as Operation.Status
9278     (InProgress/Succeeded/Failed).
9279    :type status: str
9280    :param message: Detailed message of a network trace operation, e.g. error message in case of
9281     failure.
9282    :type message: str
9283    """
9284
9285    _attribute_map = {
9286        'path': {'key': 'path', 'type': 'str'},
9287        'status': {'key': 'status', 'type': 'str'},
9288        'message': {'key': 'message', 'type': 'str'},
9289    }
9290
9291    def __init__(
9292        self,
9293        **kwargs
9294    ):
9295        super(NetworkTrace, self).__init__(**kwargs)
9296        self.path = kwargs.get('path', None)
9297        self.status = kwargs.get('status', None)
9298        self.message = kwargs.get('message', None)
9299
9300
9301class Nonce(ProxyOnlyResource):
9302    """Nonce.
9303
9304    Variables are only populated by the server, and will be ignored when sending a request.
9305
9306    :ivar id: Resource Id.
9307    :vartype id: str
9308    :ivar name: Resource Name.
9309    :vartype name: str
9310    :param kind: Kind of resource.
9311    :type kind: str
9312    :ivar type: Resource type.
9313    :vartype type: str
9314    :ivar system_data: The system metadata relating to this resource.
9315    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9316    :param validate_nonce:
9317    :type validate_nonce: bool
9318    :param nonce_expiration_interval:
9319    :type nonce_expiration_interval: str
9320    """
9321
9322    _validation = {
9323        'id': {'readonly': True},
9324        'name': {'readonly': True},
9325        'type': {'readonly': True},
9326        'system_data': {'readonly': True},
9327    }
9328
9329    _attribute_map = {
9330        'id': {'key': 'id', 'type': 'str'},
9331        'name': {'key': 'name', 'type': 'str'},
9332        'kind': {'key': 'kind', 'type': 'str'},
9333        'type': {'key': 'type', 'type': 'str'},
9334        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9335        'validate_nonce': {'key': 'properties.validateNonce', 'type': 'bool'},
9336        'nonce_expiration_interval': {'key': 'properties.nonceExpirationInterval', 'type': 'str'},
9337    }
9338
9339    def __init__(
9340        self,
9341        **kwargs
9342    ):
9343        super(Nonce, self).__init__(**kwargs)
9344        self.validate_nonce = kwargs.get('validate_nonce', None)
9345        self.nonce_expiration_interval = kwargs.get('nonce_expiration_interval', None)
9346
9347
9348class OpenIdConnectClientCredential(ProxyOnlyResource):
9349    """OpenIdConnectClientCredential.
9350
9351    Variables are only populated by the server, and will be ignored when sending a request.
9352
9353    :ivar id: Resource Id.
9354    :vartype id: str
9355    :ivar name: Resource Name.
9356    :vartype name: str
9357    :param kind: Kind of resource.
9358    :type kind: str
9359    :ivar type: Resource type.
9360    :vartype type: str
9361    :ivar system_data: The system metadata relating to this resource.
9362    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9363    :param method:  The only acceptable values to pass in are None and "ClientSecretPost". The
9364     default value is None.
9365    :type method: str
9366    :param client_secret_setting_name:
9367    :type client_secret_setting_name: str
9368    """
9369
9370    _validation = {
9371        'id': {'readonly': True},
9372        'name': {'readonly': True},
9373        'type': {'readonly': True},
9374        'system_data': {'readonly': True},
9375    }
9376
9377    _attribute_map = {
9378        'id': {'key': 'id', 'type': 'str'},
9379        'name': {'key': 'name', 'type': 'str'},
9380        'kind': {'key': 'kind', 'type': 'str'},
9381        'type': {'key': 'type', 'type': 'str'},
9382        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9383        'method': {'key': 'properties.method', 'type': 'str'},
9384        'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'},
9385    }
9386
9387    def __init__(
9388        self,
9389        **kwargs
9390    ):
9391        super(OpenIdConnectClientCredential, self).__init__(**kwargs)
9392        self.method = kwargs.get('method', None)
9393        self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None)
9394
9395
9396class OpenIdConnectConfig(ProxyOnlyResource):
9397    """OpenIdConnectConfig.
9398
9399    Variables are only populated by the server, and will be ignored when sending a request.
9400
9401    :ivar id: Resource Id.
9402    :vartype id: str
9403    :ivar name: Resource Name.
9404    :vartype name: str
9405    :param kind: Kind of resource.
9406    :type kind: str
9407    :ivar type: Resource type.
9408    :vartype type: str
9409    :ivar system_data: The system metadata relating to this resource.
9410    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9411    :param authorization_endpoint:
9412    :type authorization_endpoint: str
9413    :param token_endpoint:
9414    :type token_endpoint: str
9415    :param issuer:
9416    :type issuer: str
9417    :param certification_uri:
9418    :type certification_uri: str
9419    :param well_known_open_id_configuration:
9420    :type well_known_open_id_configuration: str
9421    """
9422
9423    _validation = {
9424        'id': {'readonly': True},
9425        'name': {'readonly': True},
9426        'type': {'readonly': True},
9427        'system_data': {'readonly': True},
9428    }
9429
9430    _attribute_map = {
9431        'id': {'key': 'id', 'type': 'str'},
9432        'name': {'key': 'name', 'type': 'str'},
9433        'kind': {'key': 'kind', 'type': 'str'},
9434        'type': {'key': 'type', 'type': 'str'},
9435        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9436        'authorization_endpoint': {'key': 'properties.authorizationEndpoint', 'type': 'str'},
9437        'token_endpoint': {'key': 'properties.tokenEndpoint', 'type': 'str'},
9438        'issuer': {'key': 'properties.issuer', 'type': 'str'},
9439        'certification_uri': {'key': 'properties.certificationUri', 'type': 'str'},
9440        'well_known_open_id_configuration': {'key': 'properties.wellKnownOpenIdConfiguration', 'type': 'str'},
9441    }
9442
9443    def __init__(
9444        self,
9445        **kwargs
9446    ):
9447        super(OpenIdConnectConfig, self).__init__(**kwargs)
9448        self.authorization_endpoint = kwargs.get('authorization_endpoint', None)
9449        self.token_endpoint = kwargs.get('token_endpoint', None)
9450        self.issuer = kwargs.get('issuer', None)
9451        self.certification_uri = kwargs.get('certification_uri', None)
9452        self.well_known_open_id_configuration = kwargs.get('well_known_open_id_configuration', None)
9453
9454
9455class OpenIdConnectLogin(ProxyOnlyResource):
9456    """OpenIdConnectLogin.
9457
9458    Variables are only populated by the server, and will be ignored when sending a request.
9459
9460    :ivar id: Resource Id.
9461    :vartype id: str
9462    :ivar name: Resource Name.
9463    :vartype name: str
9464    :param kind: Kind of resource.
9465    :type kind: str
9466    :ivar type: Resource type.
9467    :vartype type: str
9468    :ivar system_data: The system metadata relating to this resource.
9469    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9470    :param name_claim_type:
9471    :type name_claim_type: str
9472    :param scopes:
9473    :type scopes: list[str]
9474    """
9475
9476    _validation = {
9477        'id': {'readonly': True},
9478        'name': {'readonly': True},
9479        'type': {'readonly': True},
9480        'system_data': {'readonly': True},
9481    }
9482
9483    _attribute_map = {
9484        'id': {'key': 'id', 'type': 'str'},
9485        'name': {'key': 'name', 'type': 'str'},
9486        'kind': {'key': 'kind', 'type': 'str'},
9487        'type': {'key': 'type', 'type': 'str'},
9488        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9489        'name_claim_type': {'key': 'properties.nameClaimType', 'type': 'str'},
9490        'scopes': {'key': 'properties.scopes', 'type': '[str]'},
9491    }
9492
9493    def __init__(
9494        self,
9495        **kwargs
9496    ):
9497        super(OpenIdConnectLogin, self).__init__(**kwargs)
9498        self.name_claim_type = kwargs.get('name_claim_type', None)
9499        self.scopes = kwargs.get('scopes', None)
9500
9501
9502class OpenIdConnectRegistration(ProxyOnlyResource):
9503    """OpenIdConnectRegistration.
9504
9505    Variables are only populated by the server, and will be ignored when sending a request.
9506
9507    :ivar id: Resource Id.
9508    :vartype id: str
9509    :ivar name: Resource Name.
9510    :vartype name: str
9511    :param kind: Kind of resource.
9512    :type kind: str
9513    :ivar type: Resource type.
9514    :vartype type: str
9515    :ivar system_data: The system metadata relating to this resource.
9516    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9517    :param client_id:
9518    :type client_id: str
9519    :param client_credential:
9520    :type client_credential: ~azure.mgmt.web.v2020_09_01.models.OpenIdConnectClientCredential
9521    :param open_id_connect_configuration:
9522    :type open_id_connect_configuration: ~azure.mgmt.web.v2020_09_01.models.OpenIdConnectConfig
9523    """
9524
9525    _validation = {
9526        'id': {'readonly': True},
9527        'name': {'readonly': True},
9528        'type': {'readonly': True},
9529        'system_data': {'readonly': True},
9530    }
9531
9532    _attribute_map = {
9533        'id': {'key': 'id', 'type': 'str'},
9534        'name': {'key': 'name', 'type': 'str'},
9535        'kind': {'key': 'kind', 'type': 'str'},
9536        'type': {'key': 'type', 'type': 'str'},
9537        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9538        'client_id': {'key': 'properties.clientId', 'type': 'str'},
9539        'client_credential': {'key': 'properties.clientCredential', 'type': 'OpenIdConnectClientCredential'},
9540        'open_id_connect_configuration': {'key': 'properties.openIdConnectConfiguration', 'type': 'OpenIdConnectConfig'},
9541    }
9542
9543    def __init__(
9544        self,
9545        **kwargs
9546    ):
9547        super(OpenIdConnectRegistration, self).__init__(**kwargs)
9548        self.client_id = kwargs.get('client_id', None)
9549        self.client_credential = kwargs.get('client_credential', None)
9550        self.open_id_connect_configuration = kwargs.get('open_id_connect_configuration', None)
9551
9552
9553class Operation(msrest.serialization.Model):
9554    """An operation on a resource.
9555
9556    :param id: Operation ID.
9557    :type id: str
9558    :param name: Operation name.
9559    :type name: str
9560    :param status: The current status of the operation. Possible values include: "InProgress",
9561     "Failed", "Succeeded", "TimedOut", "Created".
9562    :type status: str or ~azure.mgmt.web.v2020_09_01.models.OperationStatus
9563    :param errors: Any errors associate with the operation.
9564    :type errors: list[~azure.mgmt.web.v2020_09_01.models.ErrorEntity]
9565    :param created_time: Time when operation has started.
9566    :type created_time: ~datetime.datetime
9567    :param modified_time: Time when operation has been updated.
9568    :type modified_time: ~datetime.datetime
9569    :param expiration_time: Time when operation will expire.
9570    :type expiration_time: ~datetime.datetime
9571    :param geo_master_operation_id: Applicable only for stamp operation ids.
9572    :type geo_master_operation_id: str
9573    """
9574
9575    _attribute_map = {
9576        'id': {'key': 'id', 'type': 'str'},
9577        'name': {'key': 'name', 'type': 'str'},
9578        'status': {'key': 'status', 'type': 'str'},
9579        'errors': {'key': 'errors', 'type': '[ErrorEntity]'},
9580        'created_time': {'key': 'createdTime', 'type': 'iso-8601'},
9581        'modified_time': {'key': 'modifiedTime', 'type': 'iso-8601'},
9582        'expiration_time': {'key': 'expirationTime', 'type': 'iso-8601'},
9583        'geo_master_operation_id': {'key': 'geoMasterOperationId', 'type': 'str'},
9584    }
9585
9586    def __init__(
9587        self,
9588        **kwargs
9589    ):
9590        super(Operation, self).__init__(**kwargs)
9591        self.id = kwargs.get('id', None)
9592        self.name = kwargs.get('name', None)
9593        self.status = kwargs.get('status', None)
9594        self.errors = kwargs.get('errors', None)
9595        self.created_time = kwargs.get('created_time', None)
9596        self.modified_time = kwargs.get('modified_time', None)
9597        self.expiration_time = kwargs.get('expiration_time', None)
9598        self.geo_master_operation_id = kwargs.get('geo_master_operation_id', None)
9599
9600
9601class OutboundEnvironmentEndpoint(msrest.serialization.Model):
9602    """Endpoints accessed for a common purpose that the App Service Environment requires outbound network access to.
9603
9604    :param category: The type of service accessed by the App Service Environment, e.g., Azure
9605     Storage, Azure SQL Database, and Azure Active Directory.
9606    :type category: str
9607    :param endpoints: The endpoints that the App Service Environment reaches the service at.
9608    :type endpoints: list[~azure.mgmt.web.v2020_09_01.models.EndpointDependency]
9609    """
9610
9611    _attribute_map = {
9612        'category': {'key': 'category', 'type': 'str'},
9613        'endpoints': {'key': 'endpoints', 'type': '[EndpointDependency]'},
9614    }
9615
9616    def __init__(
9617        self,
9618        **kwargs
9619    ):
9620        super(OutboundEnvironmentEndpoint, self).__init__(**kwargs)
9621        self.category = kwargs.get('category', None)
9622        self.endpoints = kwargs.get('endpoints', None)
9623
9624
9625class OutboundEnvironmentEndpointCollection(msrest.serialization.Model):
9626    """Collection of Outbound Environment Endpoints.
9627
9628    Variables are only populated by the server, and will be ignored when sending a request.
9629
9630    All required parameters must be populated in order to send to Azure.
9631
9632    :param value: Required. Collection of resources.
9633    :type value: list[~azure.mgmt.web.v2020_09_01.models.OutboundEnvironmentEndpoint]
9634    :ivar next_link: Link to next page of resources.
9635    :vartype next_link: str
9636    """
9637
9638    _validation = {
9639        'value': {'required': True},
9640        'next_link': {'readonly': True},
9641    }
9642
9643    _attribute_map = {
9644        'value': {'key': 'value', 'type': '[OutboundEnvironmentEndpoint]'},
9645        'next_link': {'key': 'nextLink', 'type': 'str'},
9646    }
9647
9648    def __init__(
9649        self,
9650        **kwargs
9651    ):
9652        super(OutboundEnvironmentEndpointCollection, self).__init__(**kwargs)
9653        self.value = kwargs['value']
9654        self.next_link = None
9655
9656
9657class PerfMonCounterCollection(msrest.serialization.Model):
9658    """Collection of performance monitor counters.
9659
9660    Variables are only populated by the server, and will be ignored when sending a request.
9661
9662    All required parameters must be populated in order to send to Azure.
9663
9664    :param value: Required. Collection of resources.
9665    :type value: list[~azure.mgmt.web.v2020_09_01.models.PerfMonResponse]
9666    :ivar next_link: Link to next page of resources.
9667    :vartype next_link: str
9668    """
9669
9670    _validation = {
9671        'value': {'required': True},
9672        'next_link': {'readonly': True},
9673    }
9674
9675    _attribute_map = {
9676        'value': {'key': 'value', 'type': '[PerfMonResponse]'},
9677        'next_link': {'key': 'nextLink', 'type': 'str'},
9678    }
9679
9680    def __init__(
9681        self,
9682        **kwargs
9683    ):
9684        super(PerfMonCounterCollection, self).__init__(**kwargs)
9685        self.value = kwargs['value']
9686        self.next_link = None
9687
9688
9689class PerfMonResponse(msrest.serialization.Model):
9690    """Performance monitor API response.
9691
9692    :param code: The response code.
9693    :type code: str
9694    :param message: The message.
9695    :type message: str
9696    :param data: The performance monitor counters.
9697    :type data: ~azure.mgmt.web.v2020_09_01.models.PerfMonSet
9698    """
9699
9700    _attribute_map = {
9701        'code': {'key': 'code', 'type': 'str'},
9702        'message': {'key': 'message', 'type': 'str'},
9703        'data': {'key': 'data', 'type': 'PerfMonSet'},
9704    }
9705
9706    def __init__(
9707        self,
9708        **kwargs
9709    ):
9710        super(PerfMonResponse, self).__init__(**kwargs)
9711        self.code = kwargs.get('code', None)
9712        self.message = kwargs.get('message', None)
9713        self.data = kwargs.get('data', None)
9714
9715
9716class PerfMonSample(msrest.serialization.Model):
9717    """Performance monitor sample in a set.
9718
9719    :param time: Point in time for which counter was measured.
9720    :type time: ~datetime.datetime
9721    :param instance_name: Name of the server on which the measurement is made.
9722    :type instance_name: str
9723    :param value: Value of counter at a certain time.
9724    :type value: float
9725    """
9726
9727    _attribute_map = {
9728        'time': {'key': 'time', 'type': 'iso-8601'},
9729        'instance_name': {'key': 'instanceName', 'type': 'str'},
9730        'value': {'key': 'value', 'type': 'float'},
9731    }
9732
9733    def __init__(
9734        self,
9735        **kwargs
9736    ):
9737        super(PerfMonSample, self).__init__(**kwargs)
9738        self.time = kwargs.get('time', None)
9739        self.instance_name = kwargs.get('instance_name', None)
9740        self.value = kwargs.get('value', None)
9741
9742
9743class PerfMonSet(msrest.serialization.Model):
9744    """Metric information.
9745
9746    :param name: Unique key name of the counter.
9747    :type name: str
9748    :param start_time: Start time of the period.
9749    :type start_time: ~datetime.datetime
9750    :param end_time: End time of the period.
9751    :type end_time: ~datetime.datetime
9752    :param time_grain: Presented time grain.
9753    :type time_grain: str
9754    :param values: Collection of workers that are active during this time.
9755    :type values: list[~azure.mgmt.web.v2020_09_01.models.PerfMonSample]
9756    """
9757
9758    _attribute_map = {
9759        'name': {'key': 'name', 'type': 'str'},
9760        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
9761        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
9762        'time_grain': {'key': 'timeGrain', 'type': 'str'},
9763        'values': {'key': 'values', 'type': '[PerfMonSample]'},
9764    }
9765
9766    def __init__(
9767        self,
9768        **kwargs
9769    ):
9770        super(PerfMonSet, self).__init__(**kwargs)
9771        self.name = kwargs.get('name', None)
9772        self.start_time = kwargs.get('start_time', None)
9773        self.end_time = kwargs.get('end_time', None)
9774        self.time_grain = kwargs.get('time_grain', None)
9775        self.values = kwargs.get('values', None)
9776
9777
9778class PremierAddOn(Resource):
9779    """Premier add-on.
9780
9781    Variables are only populated by the server, and will be ignored when sending a request.
9782
9783    All required parameters must be populated in order to send to Azure.
9784
9785    :ivar id: Resource Id.
9786    :vartype id: str
9787    :ivar name: Resource Name.
9788    :vartype name: str
9789    :param kind: Kind of resource.
9790    :type kind: str
9791    :param location: Required. Resource Location.
9792    :type location: str
9793    :ivar type: Resource type.
9794    :vartype type: str
9795    :param tags: A set of tags. Resource tags.
9796    :type tags: dict[str, str]
9797    :ivar system_data: The system metadata relating to this resource.
9798    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9799    :param sku: Premier add on SKU.
9800    :type sku: str
9801    :param product: Premier add on Product.
9802    :type product: str
9803    :param vendor: Premier add on Vendor.
9804    :type vendor: str
9805    :param marketplace_publisher: Premier add on Marketplace publisher.
9806    :type marketplace_publisher: str
9807    :param marketplace_offer: Premier add on Marketplace offer.
9808    :type marketplace_offer: str
9809    """
9810
9811    _validation = {
9812        'id': {'readonly': True},
9813        'name': {'readonly': True},
9814        'location': {'required': True},
9815        'type': {'readonly': True},
9816        'system_data': {'readonly': True},
9817    }
9818
9819    _attribute_map = {
9820        'id': {'key': 'id', 'type': 'str'},
9821        'name': {'key': 'name', 'type': 'str'},
9822        'kind': {'key': 'kind', 'type': 'str'},
9823        'location': {'key': 'location', 'type': 'str'},
9824        'type': {'key': 'type', 'type': 'str'},
9825        'tags': {'key': 'tags', 'type': '{str}'},
9826        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9827        'sku': {'key': 'properties.sku', 'type': 'str'},
9828        'product': {'key': 'properties.product', 'type': 'str'},
9829        'vendor': {'key': 'properties.vendor', 'type': 'str'},
9830        'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'},
9831        'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'},
9832    }
9833
9834    def __init__(
9835        self,
9836        **kwargs
9837    ):
9838        super(PremierAddOn, self).__init__(**kwargs)
9839        self.sku = kwargs.get('sku', None)
9840        self.product = kwargs.get('product', None)
9841        self.vendor = kwargs.get('vendor', None)
9842        self.marketplace_publisher = kwargs.get('marketplace_publisher', None)
9843        self.marketplace_offer = kwargs.get('marketplace_offer', None)
9844
9845
9846class PremierAddOnOffer(ProxyOnlyResource):
9847    """Premier add-on offer.
9848
9849    Variables are only populated by the server, and will be ignored when sending a request.
9850
9851    :ivar id: Resource Id.
9852    :vartype id: str
9853    :ivar name: Resource Name.
9854    :vartype name: str
9855    :param kind: Kind of resource.
9856    :type kind: str
9857    :ivar type: Resource type.
9858    :vartype type: str
9859    :ivar system_data: The system metadata relating to this resource.
9860    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9861    :param sku: Premier add on SKU.
9862    :type sku: str
9863    :param product: Premier add on offer Product.
9864    :type product: str
9865    :param vendor: Premier add on offer Vendor.
9866    :type vendor: str
9867    :param promo_code_required: :code:`<code>true</code>` if promotion code is required; otherwise,
9868     :code:`<code>false</code>`.
9869    :type promo_code_required: bool
9870    :param quota: Premier add on offer Quota.
9871    :type quota: int
9872    :param web_hosting_plan_restrictions: App Service plans this offer is restricted to. Possible
9873     values include: "None", "Free", "Shared", "Basic", "Standard", "Premium".
9874    :type web_hosting_plan_restrictions: str or
9875     ~azure.mgmt.web.v2020_09_01.models.AppServicePlanRestrictions
9876    :param privacy_policy_url: Privacy policy URL.
9877    :type privacy_policy_url: str
9878    :param legal_terms_url: Legal terms URL.
9879    :type legal_terms_url: str
9880    :param marketplace_publisher: Marketplace publisher.
9881    :type marketplace_publisher: str
9882    :param marketplace_offer: Marketplace offer.
9883    :type marketplace_offer: str
9884    """
9885
9886    _validation = {
9887        'id': {'readonly': True},
9888        'name': {'readonly': True},
9889        'type': {'readonly': True},
9890        'system_data': {'readonly': True},
9891    }
9892
9893    _attribute_map = {
9894        'id': {'key': 'id', 'type': 'str'},
9895        'name': {'key': 'name', 'type': 'str'},
9896        'kind': {'key': 'kind', 'type': 'str'},
9897        'type': {'key': 'type', 'type': 'str'},
9898        'system_data': {'key': 'systemData', 'type': 'SystemData'},
9899        'sku': {'key': 'properties.sku', 'type': 'str'},
9900        'product': {'key': 'properties.product', 'type': 'str'},
9901        'vendor': {'key': 'properties.vendor', 'type': 'str'},
9902        'promo_code_required': {'key': 'properties.promoCodeRequired', 'type': 'bool'},
9903        'quota': {'key': 'properties.quota', 'type': 'int'},
9904        'web_hosting_plan_restrictions': {'key': 'properties.webHostingPlanRestrictions', 'type': 'str'},
9905        'privacy_policy_url': {'key': 'properties.privacyPolicyUrl', 'type': 'str'},
9906        'legal_terms_url': {'key': 'properties.legalTermsUrl', 'type': 'str'},
9907        'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'},
9908        'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'},
9909    }
9910
9911    def __init__(
9912        self,
9913        **kwargs
9914    ):
9915        super(PremierAddOnOffer, self).__init__(**kwargs)
9916        self.sku = kwargs.get('sku', None)
9917        self.product = kwargs.get('product', None)
9918        self.vendor = kwargs.get('vendor', None)
9919        self.promo_code_required = kwargs.get('promo_code_required', None)
9920        self.quota = kwargs.get('quota', None)
9921        self.web_hosting_plan_restrictions = kwargs.get('web_hosting_plan_restrictions', None)
9922        self.privacy_policy_url = kwargs.get('privacy_policy_url', None)
9923        self.legal_terms_url = kwargs.get('legal_terms_url', None)
9924        self.marketplace_publisher = kwargs.get('marketplace_publisher', None)
9925        self.marketplace_offer = kwargs.get('marketplace_offer', None)
9926
9927
9928class PremierAddOnOfferCollection(msrest.serialization.Model):
9929    """Collection of premier add-on offers.
9930
9931    Variables are only populated by the server, and will be ignored when sending a request.
9932
9933    All required parameters must be populated in order to send to Azure.
9934
9935    :param value: Required. Collection of resources.
9936    :type value: list[~azure.mgmt.web.v2020_09_01.models.PremierAddOnOffer]
9937    :ivar next_link: Link to next page of resources.
9938    :vartype next_link: str
9939    """
9940
9941    _validation = {
9942        'value': {'required': True},
9943        'next_link': {'readonly': True},
9944    }
9945
9946    _attribute_map = {
9947        'value': {'key': 'value', 'type': '[PremierAddOnOffer]'},
9948        'next_link': {'key': 'nextLink', 'type': 'str'},
9949    }
9950
9951    def __init__(
9952        self,
9953        **kwargs
9954    ):
9955        super(PremierAddOnOfferCollection, self).__init__(**kwargs)
9956        self.value = kwargs['value']
9957        self.next_link = None
9958
9959
9960class PremierAddOnPatchResource(ProxyOnlyResource):
9961    """ARM resource for a PremierAddOn.
9962
9963    Variables are only populated by the server, and will be ignored when sending a request.
9964
9965    :ivar id: Resource Id.
9966    :vartype id: str
9967    :ivar name: Resource Name.
9968    :vartype name: str
9969    :param kind: Kind of resource.
9970    :type kind: str
9971    :ivar type: Resource type.
9972    :vartype type: str
9973    :ivar system_data: The system metadata relating to this resource.
9974    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
9975    :param sku: Premier add on SKU.
9976    :type sku: str
9977    :param product: Premier add on Product.
9978    :type product: str
9979    :param vendor: Premier add on Vendor.
9980    :type vendor: str
9981    :param marketplace_publisher: Premier add on Marketplace publisher.
9982    :type marketplace_publisher: str
9983    :param marketplace_offer: Premier add on Marketplace offer.
9984    :type marketplace_offer: str
9985    """
9986
9987    _validation = {
9988        'id': {'readonly': True},
9989        'name': {'readonly': True},
9990        'type': {'readonly': True},
9991        'system_data': {'readonly': True},
9992    }
9993
9994    _attribute_map = {
9995        'id': {'key': 'id', 'type': 'str'},
9996        'name': {'key': 'name', 'type': 'str'},
9997        'kind': {'key': 'kind', 'type': 'str'},
9998        'type': {'key': 'type', 'type': 'str'},
9999        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10000        'sku': {'key': 'properties.sku', 'type': 'str'},
10001        'product': {'key': 'properties.product', 'type': 'str'},
10002        'vendor': {'key': 'properties.vendor', 'type': 'str'},
10003        'marketplace_publisher': {'key': 'properties.marketplacePublisher', 'type': 'str'},
10004        'marketplace_offer': {'key': 'properties.marketplaceOffer', 'type': 'str'},
10005    }
10006
10007    def __init__(
10008        self,
10009        **kwargs
10010    ):
10011        super(PremierAddOnPatchResource, self).__init__(**kwargs)
10012        self.sku = kwargs.get('sku', None)
10013        self.product = kwargs.get('product', None)
10014        self.vendor = kwargs.get('vendor', None)
10015        self.marketplace_publisher = kwargs.get('marketplace_publisher', None)
10016        self.marketplace_offer = kwargs.get('marketplace_offer', None)
10017
10018
10019class PrivateAccess(ProxyOnlyResource):
10020    """Description of the parameters of Private Access for a Web Site.
10021
10022    Variables are only populated by the server, and will be ignored when sending a request.
10023
10024    :ivar id: Resource Id.
10025    :vartype id: str
10026    :ivar name: Resource Name.
10027    :vartype name: str
10028    :param kind: Kind of resource.
10029    :type kind: str
10030    :ivar type: Resource type.
10031    :vartype type: str
10032    :ivar system_data: The system metadata relating to this resource.
10033    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10034    :param enabled: Whether private access is enabled or not.
10035    :type enabled: bool
10036    :param virtual_networks: The Virtual Networks (and subnets) allowed to access the site
10037     privately.
10038    :type virtual_networks: list[~azure.mgmt.web.v2020_09_01.models.PrivateAccessVirtualNetwork]
10039    """
10040
10041    _validation = {
10042        'id': {'readonly': True},
10043        'name': {'readonly': True},
10044        'type': {'readonly': True},
10045        'system_data': {'readonly': True},
10046    }
10047
10048    _attribute_map = {
10049        'id': {'key': 'id', 'type': 'str'},
10050        'name': {'key': 'name', 'type': 'str'},
10051        'kind': {'key': 'kind', 'type': 'str'},
10052        'type': {'key': 'type', 'type': 'str'},
10053        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10054        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
10055        'virtual_networks': {'key': 'properties.virtualNetworks', 'type': '[PrivateAccessVirtualNetwork]'},
10056    }
10057
10058    def __init__(
10059        self,
10060        **kwargs
10061    ):
10062        super(PrivateAccess, self).__init__(**kwargs)
10063        self.enabled = kwargs.get('enabled', None)
10064        self.virtual_networks = kwargs.get('virtual_networks', None)
10065
10066
10067class PrivateAccessSubnet(msrest.serialization.Model):
10068    """Description of a Virtual Network subnet that is useable for private site access.
10069
10070    :param name: The name of the subnet.
10071    :type name: str
10072    :param key: The key (ID) of the subnet.
10073    :type key: int
10074    """
10075
10076    _attribute_map = {
10077        'name': {'key': 'name', 'type': 'str'},
10078        'key': {'key': 'key', 'type': 'int'},
10079    }
10080
10081    def __init__(
10082        self,
10083        **kwargs
10084    ):
10085        super(PrivateAccessSubnet, self).__init__(**kwargs)
10086        self.name = kwargs.get('name', None)
10087        self.key = kwargs.get('key', None)
10088
10089
10090class PrivateAccessVirtualNetwork(msrest.serialization.Model):
10091    """Description of a Virtual Network that is useable for private site access.
10092
10093    :param name: The name of the Virtual Network.
10094    :type name: str
10095    :param key: The key (ID) of the Virtual Network.
10096    :type key: int
10097    :param resource_id: The ARM uri of the Virtual Network.
10098    :type resource_id: str
10099    :param subnets: A List of subnets that access is allowed to on this Virtual Network. An empty
10100     array (but not null) is interpreted to mean that all subnets are allowed within this Virtual
10101     Network.
10102    :type subnets: list[~azure.mgmt.web.v2020_09_01.models.PrivateAccessSubnet]
10103    """
10104
10105    _attribute_map = {
10106        'name': {'key': 'name', 'type': 'str'},
10107        'key': {'key': 'key', 'type': 'int'},
10108        'resource_id': {'key': 'resourceId', 'type': 'str'},
10109        'subnets': {'key': 'subnets', 'type': '[PrivateAccessSubnet]'},
10110    }
10111
10112    def __init__(
10113        self,
10114        **kwargs
10115    ):
10116        super(PrivateAccessVirtualNetwork, self).__init__(**kwargs)
10117        self.name = kwargs.get('name', None)
10118        self.key = kwargs.get('key', None)
10119        self.resource_id = kwargs.get('resource_id', None)
10120        self.subnets = kwargs.get('subnets', None)
10121
10122
10123class PrivateEndpointConnectionResource(ProxyOnlyResource):
10124    """Private Endpoint Connection ARM resource.
10125
10126    Variables are only populated by the server, and will be ignored when sending a request.
10127
10128    :ivar id: Resource Id.
10129    :vartype id: str
10130    :ivar name: Resource Name.
10131    :vartype name: str
10132    :param kind: Kind of resource.
10133    :type kind: str
10134    :ivar type: Resource type.
10135    :vartype type: str
10136    :ivar system_data: The system metadata relating to this resource.
10137    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10138    :ivar provisioning_state:
10139    :vartype provisioning_state: str
10140    :param private_endpoint: PrivateEndpoint of a remote private endpoint connection.
10141    :type private_endpoint: ~azure.mgmt.web.v2020_09_01.models.ArmIdWrapper
10142    :param private_link_service_connection_state: The state of a private link connection.
10143    :type private_link_service_connection_state:
10144     ~azure.mgmt.web.v2020_09_01.models.PrivateLinkConnectionState
10145    """
10146
10147    _validation = {
10148        'id': {'readonly': True},
10149        'name': {'readonly': True},
10150        'type': {'readonly': True},
10151        'system_data': {'readonly': True},
10152        'provisioning_state': {'readonly': True},
10153    }
10154
10155    _attribute_map = {
10156        'id': {'key': 'id', 'type': 'str'},
10157        'name': {'key': 'name', 'type': 'str'},
10158        'kind': {'key': 'kind', 'type': 'str'},
10159        'type': {'key': 'type', 'type': 'str'},
10160        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10161        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
10162        'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'ArmIdWrapper'},
10163        'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'},
10164    }
10165
10166    def __init__(
10167        self,
10168        **kwargs
10169    ):
10170        super(PrivateEndpointConnectionResource, self).__init__(**kwargs)
10171        self.provisioning_state = None
10172        self.private_endpoint = kwargs.get('private_endpoint', None)
10173        self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None)
10174
10175
10176class PrivateLinkConnectionApprovalRequestResource(ProxyOnlyResource):
10177    """Private Endpoint Connection Approval ARM resource.
10178
10179    Variables are only populated by the server, and will be ignored when sending a request.
10180
10181    :ivar id: Resource Id.
10182    :vartype id: str
10183    :ivar name: Resource Name.
10184    :vartype name: str
10185    :param kind: Kind of resource.
10186    :type kind: str
10187    :ivar type: Resource type.
10188    :vartype type: str
10189    :ivar system_data: The system metadata relating to this resource.
10190    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10191    :param private_link_service_connection_state: The state of a private link connection.
10192    :type private_link_service_connection_state:
10193     ~azure.mgmt.web.v2020_09_01.models.PrivateLinkConnectionState
10194    """
10195
10196    _validation = {
10197        'id': {'readonly': True},
10198        'name': {'readonly': True},
10199        'type': {'readonly': True},
10200        'system_data': {'readonly': True},
10201    }
10202
10203    _attribute_map = {
10204        'id': {'key': 'id', 'type': 'str'},
10205        'name': {'key': 'name', 'type': 'str'},
10206        'kind': {'key': 'kind', 'type': 'str'},
10207        'type': {'key': 'type', 'type': 'str'},
10208        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10209        'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkConnectionState'},
10210    }
10211
10212    def __init__(
10213        self,
10214        **kwargs
10215    ):
10216        super(PrivateLinkConnectionApprovalRequestResource, self).__init__(**kwargs)
10217        self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None)
10218
10219
10220class PrivateLinkConnectionState(msrest.serialization.Model):
10221    """The state of a private link connection.
10222
10223    :param status: Status of a private link connection.
10224    :type status: str
10225    :param description: Description of a private link connection.
10226    :type description: str
10227    :param actions_required: ActionsRequired for a private link connection.
10228    :type actions_required: str
10229    """
10230
10231    _attribute_map = {
10232        'status': {'key': 'status', 'type': 'str'},
10233        'description': {'key': 'description', 'type': 'str'},
10234        'actions_required': {'key': 'actionsRequired', 'type': 'str'},
10235    }
10236
10237    def __init__(
10238        self,
10239        **kwargs
10240    ):
10241        super(PrivateLinkConnectionState, self).__init__(**kwargs)
10242        self.status = kwargs.get('status', None)
10243        self.description = kwargs.get('description', None)
10244        self.actions_required = kwargs.get('actions_required', None)
10245
10246
10247class PrivateLinkResource(msrest.serialization.Model):
10248    """A private link resource.
10249
10250    All required parameters must be populated in order to send to Azure.
10251
10252    :param id: Required.
10253    :type id: str
10254    :param name: Required. Name of a private link resource.
10255    :type name: str
10256    :param type: Required.
10257    :type type: str
10258    :param properties: Required. Properties of a private link resource.
10259    :type properties: ~azure.mgmt.web.v2020_09_01.models.PrivateLinkResourceProperties
10260    """
10261
10262    _validation = {
10263        'id': {'required': True},
10264        'name': {'required': True},
10265        'type': {'required': True},
10266        'properties': {'required': True},
10267    }
10268
10269    _attribute_map = {
10270        'id': {'key': 'id', 'type': 'str'},
10271        'name': {'key': 'name', 'type': 'str'},
10272        'type': {'key': 'type', 'type': 'str'},
10273        'properties': {'key': 'properties', 'type': 'PrivateLinkResourceProperties'},
10274    }
10275
10276    def __init__(
10277        self,
10278        **kwargs
10279    ):
10280        super(PrivateLinkResource, self).__init__(**kwargs)
10281        self.id = kwargs['id']
10282        self.name = kwargs['name']
10283        self.type = kwargs['type']
10284        self.properties = kwargs['properties']
10285
10286
10287class PrivateLinkResourceProperties(msrest.serialization.Model):
10288    """Properties of a private link resource.
10289
10290    Variables are only populated by the server, and will be ignored when sending a request.
10291
10292    :ivar group_id: GroupId of a private link resource.
10293    :vartype group_id: str
10294    :ivar required_members: RequiredMembers of a private link resource.
10295    :vartype required_members: list[str]
10296    :ivar required_zone_names: RequiredZoneNames of a private link resource.
10297    :vartype required_zone_names: list[str]
10298    """
10299
10300    _validation = {
10301        'group_id': {'readonly': True},
10302        'required_members': {'readonly': True},
10303        'required_zone_names': {'readonly': True},
10304    }
10305
10306    _attribute_map = {
10307        'group_id': {'key': 'groupId', 'type': 'str'},
10308        'required_members': {'key': 'requiredMembers', 'type': '[str]'},
10309        'required_zone_names': {'key': 'requiredZoneNames', 'type': '[str]'},
10310    }
10311
10312    def __init__(
10313        self,
10314        **kwargs
10315    ):
10316        super(PrivateLinkResourceProperties, self).__init__(**kwargs)
10317        self.group_id = None
10318        self.required_members = None
10319        self.required_zone_names = None
10320
10321
10322class PrivateLinkResourcesWrapper(msrest.serialization.Model):
10323    """Wrapper for a collection of private link resources.
10324
10325    All required parameters must be populated in order to send to Azure.
10326
10327    :param value: Required.
10328    :type value: list[~azure.mgmt.web.v2020_09_01.models.PrivateLinkResource]
10329    """
10330
10331    _validation = {
10332        'value': {'required': True},
10333    }
10334
10335    _attribute_map = {
10336        'value': {'key': 'value', 'type': '[PrivateLinkResource]'},
10337    }
10338
10339    def __init__(
10340        self,
10341        **kwargs
10342    ):
10343        super(PrivateLinkResourcesWrapper, self).__init__(**kwargs)
10344        self.value = kwargs['value']
10345
10346
10347class ProcessInfo(ProxyOnlyResource):
10348    """Process Information.
10349
10350    Variables are only populated by the server, and will be ignored when sending a request.
10351
10352    :ivar id: Resource Id.
10353    :vartype id: str
10354    :ivar name: Resource Name.
10355    :vartype name: str
10356    :param kind: Kind of resource.
10357    :type kind: str
10358    :ivar type: Resource type.
10359    :vartype type: str
10360    :ivar system_data: The system metadata relating to this resource.
10361    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10362    :ivar identifier: ARM Identifier for deployment.
10363    :vartype identifier: int
10364    :param deployment_name: Deployment name.
10365    :type deployment_name: str
10366    :param href: HRef URI.
10367    :type href: str
10368    :param minidump: Minidump URI.
10369    :type minidump: str
10370    :param is_profile_running: Is profile running?.
10371    :type is_profile_running: bool
10372    :param is_iis_profile_running: Is the IIS Profile running?.
10373    :type is_iis_profile_running: bool
10374    :param iis_profile_timeout_in_seconds: IIS Profile timeout (seconds).
10375    :type iis_profile_timeout_in_seconds: float
10376    :param parent: Parent process.
10377    :type parent: str
10378    :param children: Child process list.
10379    :type children: list[str]
10380    :param threads: Thread list.
10381    :type threads: list[~azure.mgmt.web.v2020_09_01.models.ProcessThreadInfo]
10382    :param open_file_handles: List of open files.
10383    :type open_file_handles: list[str]
10384    :param modules: List of modules.
10385    :type modules: list[~azure.mgmt.web.v2020_09_01.models.ProcessModuleInfo]
10386    :param file_name: File name of this process.
10387    :type file_name: str
10388    :param command_line: Command line.
10389    :type command_line: str
10390    :param user_name: User name.
10391    :type user_name: str
10392    :param handle_count: Handle count.
10393    :type handle_count: int
10394    :param module_count: Module count.
10395    :type module_count: int
10396    :param thread_count: Thread count.
10397    :type thread_count: int
10398    :param start_time: Start time.
10399    :type start_time: ~datetime.datetime
10400    :param total_cpu_time: Total CPU time.
10401    :type total_cpu_time: str
10402    :param user_cpu_time: User CPU time.
10403    :type user_cpu_time: str
10404    :param privileged_cpu_time: Privileged CPU time.
10405    :type privileged_cpu_time: str
10406    :param working_set: Working set.
10407    :type working_set: long
10408    :param peak_working_set: Peak working set.
10409    :type peak_working_set: long
10410    :param private_memory: Private memory size.
10411    :type private_memory: long
10412    :param virtual_memory: Virtual memory size.
10413    :type virtual_memory: long
10414    :param peak_virtual_memory: Peak virtual memory usage.
10415    :type peak_virtual_memory: long
10416    :param paged_system_memory: Paged system memory.
10417    :type paged_system_memory: long
10418    :param non_paged_system_memory: Non-paged system memory.
10419    :type non_paged_system_memory: long
10420    :param paged_memory: Paged memory.
10421    :type paged_memory: long
10422    :param peak_paged_memory: Peak paged memory.
10423    :type peak_paged_memory: long
10424    :param time_stamp: Time stamp.
10425    :type time_stamp: ~datetime.datetime
10426    :param environment_variables: List of environment variables.
10427    :type environment_variables: dict[str, str]
10428    :param is_scm_site: Is this the SCM site?.
10429    :type is_scm_site: bool
10430    :param is_webjob: Is this a Web Job?.
10431    :type is_webjob: bool
10432    :param description: Description of process.
10433    :type description: str
10434    """
10435
10436    _validation = {
10437        'id': {'readonly': True},
10438        'name': {'readonly': True},
10439        'type': {'readonly': True},
10440        'system_data': {'readonly': True},
10441        'identifier': {'readonly': True},
10442    }
10443
10444    _attribute_map = {
10445        'id': {'key': 'id', 'type': 'str'},
10446        'name': {'key': 'name', 'type': 'str'},
10447        'kind': {'key': 'kind', 'type': 'str'},
10448        'type': {'key': 'type', 'type': 'str'},
10449        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10450        'identifier': {'key': 'properties.identifier', 'type': 'int'},
10451        'deployment_name': {'key': 'properties.deployment_name', 'type': 'str'},
10452        'href': {'key': 'properties.href', 'type': 'str'},
10453        'minidump': {'key': 'properties.minidump', 'type': 'str'},
10454        'is_profile_running': {'key': 'properties.is_profile_running', 'type': 'bool'},
10455        'is_iis_profile_running': {'key': 'properties.is_iis_profile_running', 'type': 'bool'},
10456        'iis_profile_timeout_in_seconds': {'key': 'properties.iis_profile_timeout_in_seconds', 'type': 'float'},
10457        'parent': {'key': 'properties.parent', 'type': 'str'},
10458        'children': {'key': 'properties.children', 'type': '[str]'},
10459        'threads': {'key': 'properties.threads', 'type': '[ProcessThreadInfo]'},
10460        'open_file_handles': {'key': 'properties.open_file_handles', 'type': '[str]'},
10461        'modules': {'key': 'properties.modules', 'type': '[ProcessModuleInfo]'},
10462        'file_name': {'key': 'properties.file_name', 'type': 'str'},
10463        'command_line': {'key': 'properties.command_line', 'type': 'str'},
10464        'user_name': {'key': 'properties.user_name', 'type': 'str'},
10465        'handle_count': {'key': 'properties.handle_count', 'type': 'int'},
10466        'module_count': {'key': 'properties.module_count', 'type': 'int'},
10467        'thread_count': {'key': 'properties.thread_count', 'type': 'int'},
10468        'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'},
10469        'total_cpu_time': {'key': 'properties.total_cpu_time', 'type': 'str'},
10470        'user_cpu_time': {'key': 'properties.user_cpu_time', 'type': 'str'},
10471        'privileged_cpu_time': {'key': 'properties.privileged_cpu_time', 'type': 'str'},
10472        'working_set': {'key': 'properties.working_set', 'type': 'long'},
10473        'peak_working_set': {'key': 'properties.peak_working_set', 'type': 'long'},
10474        'private_memory': {'key': 'properties.private_memory', 'type': 'long'},
10475        'virtual_memory': {'key': 'properties.virtual_memory', 'type': 'long'},
10476        'peak_virtual_memory': {'key': 'properties.peak_virtual_memory', 'type': 'long'},
10477        'paged_system_memory': {'key': 'properties.paged_system_memory', 'type': 'long'},
10478        'non_paged_system_memory': {'key': 'properties.non_paged_system_memory', 'type': 'long'},
10479        'paged_memory': {'key': 'properties.paged_memory', 'type': 'long'},
10480        'peak_paged_memory': {'key': 'properties.peak_paged_memory', 'type': 'long'},
10481        'time_stamp': {'key': 'properties.time_stamp', 'type': 'iso-8601'},
10482        'environment_variables': {'key': 'properties.environment_variables', 'type': '{str}'},
10483        'is_scm_site': {'key': 'properties.is_scm_site', 'type': 'bool'},
10484        'is_webjob': {'key': 'properties.is_webjob', 'type': 'bool'},
10485        'description': {'key': 'properties.description', 'type': 'str'},
10486    }
10487
10488    def __init__(
10489        self,
10490        **kwargs
10491    ):
10492        super(ProcessInfo, self).__init__(**kwargs)
10493        self.identifier = None
10494        self.deployment_name = kwargs.get('deployment_name', None)
10495        self.href = kwargs.get('href', None)
10496        self.minidump = kwargs.get('minidump', None)
10497        self.is_profile_running = kwargs.get('is_profile_running', None)
10498        self.is_iis_profile_running = kwargs.get('is_iis_profile_running', None)
10499        self.iis_profile_timeout_in_seconds = kwargs.get('iis_profile_timeout_in_seconds', None)
10500        self.parent = kwargs.get('parent', None)
10501        self.children = kwargs.get('children', None)
10502        self.threads = kwargs.get('threads', None)
10503        self.open_file_handles = kwargs.get('open_file_handles', None)
10504        self.modules = kwargs.get('modules', None)
10505        self.file_name = kwargs.get('file_name', None)
10506        self.command_line = kwargs.get('command_line', None)
10507        self.user_name = kwargs.get('user_name', None)
10508        self.handle_count = kwargs.get('handle_count', None)
10509        self.module_count = kwargs.get('module_count', None)
10510        self.thread_count = kwargs.get('thread_count', None)
10511        self.start_time = kwargs.get('start_time', None)
10512        self.total_cpu_time = kwargs.get('total_cpu_time', None)
10513        self.user_cpu_time = kwargs.get('user_cpu_time', None)
10514        self.privileged_cpu_time = kwargs.get('privileged_cpu_time', None)
10515        self.working_set = kwargs.get('working_set', None)
10516        self.peak_working_set = kwargs.get('peak_working_set', None)
10517        self.private_memory = kwargs.get('private_memory', None)
10518        self.virtual_memory = kwargs.get('virtual_memory', None)
10519        self.peak_virtual_memory = kwargs.get('peak_virtual_memory', None)
10520        self.paged_system_memory = kwargs.get('paged_system_memory', None)
10521        self.non_paged_system_memory = kwargs.get('non_paged_system_memory', None)
10522        self.paged_memory = kwargs.get('paged_memory', None)
10523        self.peak_paged_memory = kwargs.get('peak_paged_memory', None)
10524        self.time_stamp = kwargs.get('time_stamp', None)
10525        self.environment_variables = kwargs.get('environment_variables', None)
10526        self.is_scm_site = kwargs.get('is_scm_site', None)
10527        self.is_webjob = kwargs.get('is_webjob', None)
10528        self.description = kwargs.get('description', None)
10529
10530
10531class ProcessInfoCollection(msrest.serialization.Model):
10532    """Collection of Kudu process information elements.
10533
10534    Variables are only populated by the server, and will be ignored when sending a request.
10535
10536    All required parameters must be populated in order to send to Azure.
10537
10538    :param value: Required. Collection of resources.
10539    :type value: list[~azure.mgmt.web.v2020_09_01.models.ProcessInfo]
10540    :ivar next_link: Link to next page of resources.
10541    :vartype next_link: str
10542    """
10543
10544    _validation = {
10545        'value': {'required': True},
10546        'next_link': {'readonly': True},
10547    }
10548
10549    _attribute_map = {
10550        'value': {'key': 'value', 'type': '[ProcessInfo]'},
10551        'next_link': {'key': 'nextLink', 'type': 'str'},
10552    }
10553
10554    def __init__(
10555        self,
10556        **kwargs
10557    ):
10558        super(ProcessInfoCollection, self).__init__(**kwargs)
10559        self.value = kwargs['value']
10560        self.next_link = None
10561
10562
10563class ProcessModuleInfo(ProxyOnlyResource):
10564    """Process Module Information.
10565
10566    Variables are only populated by the server, and will be ignored when sending a request.
10567
10568    :ivar id: Resource Id.
10569    :vartype id: str
10570    :ivar name: Resource Name.
10571    :vartype name: str
10572    :param kind: Kind of resource.
10573    :type kind: str
10574    :ivar type: Resource type.
10575    :vartype type: str
10576    :ivar system_data: The system metadata relating to this resource.
10577    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10578    :param base_address: Base address. Used as module identifier in ARM resource URI.
10579    :type base_address: str
10580    :param file_name: File name.
10581    :type file_name: str
10582    :param href: HRef URI.
10583    :type href: str
10584    :param file_path: File path.
10585    :type file_path: str
10586    :param module_memory_size: Module memory size.
10587    :type module_memory_size: int
10588    :param file_version: File version.
10589    :type file_version: str
10590    :param file_description: File description.
10591    :type file_description: str
10592    :param product: Product name.
10593    :type product: str
10594    :param product_version: Product version.
10595    :type product_version: str
10596    :param is_debug: Is debug?.
10597    :type is_debug: bool
10598    :param language: Module language (locale).
10599    :type language: str
10600    """
10601
10602    _validation = {
10603        'id': {'readonly': True},
10604        'name': {'readonly': True},
10605        'type': {'readonly': True},
10606        'system_data': {'readonly': True},
10607    }
10608
10609    _attribute_map = {
10610        'id': {'key': 'id', 'type': 'str'},
10611        'name': {'key': 'name', 'type': 'str'},
10612        'kind': {'key': 'kind', 'type': 'str'},
10613        'type': {'key': 'type', 'type': 'str'},
10614        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10615        'base_address': {'key': 'properties.base_address', 'type': 'str'},
10616        'file_name': {'key': 'properties.file_name', 'type': 'str'},
10617        'href': {'key': 'properties.href', 'type': 'str'},
10618        'file_path': {'key': 'properties.file_path', 'type': 'str'},
10619        'module_memory_size': {'key': 'properties.module_memory_size', 'type': 'int'},
10620        'file_version': {'key': 'properties.file_version', 'type': 'str'},
10621        'file_description': {'key': 'properties.file_description', 'type': 'str'},
10622        'product': {'key': 'properties.product', 'type': 'str'},
10623        'product_version': {'key': 'properties.product_version', 'type': 'str'},
10624        'is_debug': {'key': 'properties.is_debug', 'type': 'bool'},
10625        'language': {'key': 'properties.language', 'type': 'str'},
10626    }
10627
10628    def __init__(
10629        self,
10630        **kwargs
10631    ):
10632        super(ProcessModuleInfo, self).__init__(**kwargs)
10633        self.base_address = kwargs.get('base_address', None)
10634        self.file_name = kwargs.get('file_name', None)
10635        self.href = kwargs.get('href', None)
10636        self.file_path = kwargs.get('file_path', None)
10637        self.module_memory_size = kwargs.get('module_memory_size', None)
10638        self.file_version = kwargs.get('file_version', None)
10639        self.file_description = kwargs.get('file_description', None)
10640        self.product = kwargs.get('product', None)
10641        self.product_version = kwargs.get('product_version', None)
10642        self.is_debug = kwargs.get('is_debug', None)
10643        self.language = kwargs.get('language', None)
10644
10645
10646class ProcessModuleInfoCollection(msrest.serialization.Model):
10647    """Collection of Kudu thread information elements.
10648
10649    Variables are only populated by the server, and will be ignored when sending a request.
10650
10651    All required parameters must be populated in order to send to Azure.
10652
10653    :param value: Required. Collection of resources.
10654    :type value: list[~azure.mgmt.web.v2020_09_01.models.ProcessModuleInfo]
10655    :ivar next_link: Link to next page of resources.
10656    :vartype next_link: str
10657    """
10658
10659    _validation = {
10660        'value': {'required': True},
10661        'next_link': {'readonly': True},
10662    }
10663
10664    _attribute_map = {
10665        'value': {'key': 'value', 'type': '[ProcessModuleInfo]'},
10666        'next_link': {'key': 'nextLink', 'type': 'str'},
10667    }
10668
10669    def __init__(
10670        self,
10671        **kwargs
10672    ):
10673        super(ProcessModuleInfoCollection, self).__init__(**kwargs)
10674        self.value = kwargs['value']
10675        self.next_link = None
10676
10677
10678class ProcessThreadInfo(ProxyOnlyResource):
10679    """Process Thread Information.
10680
10681    Variables are only populated by the server, and will be ignored when sending a request.
10682
10683    :ivar id: Resource Id.
10684    :vartype id: str
10685    :ivar name: Resource Name.
10686    :vartype name: str
10687    :param kind: Kind of resource.
10688    :type kind: str
10689    :ivar type: Resource type.
10690    :vartype type: str
10691    :ivar system_data: The system metadata relating to this resource.
10692    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10693    :ivar identifier: Site extension ID.
10694    :vartype identifier: int
10695    :param href: HRef URI.
10696    :type href: str
10697    :param process: Process URI.
10698    :type process: str
10699    :param start_address: Start address.
10700    :type start_address: str
10701    :param current_priority: Current thread priority.
10702    :type current_priority: int
10703    :param priority_level: Thread priority level.
10704    :type priority_level: str
10705    :param base_priority: Base priority.
10706    :type base_priority: int
10707    :param start_time: Start time.
10708    :type start_time: ~datetime.datetime
10709    :param total_processor_time: Total processor time.
10710    :type total_processor_time: str
10711    :param user_processor_time: User processor time.
10712    :type user_processor_time: str
10713    :param state: Thread state.
10714    :type state: str
10715    :param wait_reason: Wait reason.
10716    :type wait_reason: str
10717    """
10718
10719    _validation = {
10720        'id': {'readonly': True},
10721        'name': {'readonly': True},
10722        'type': {'readonly': True},
10723        'system_data': {'readonly': True},
10724        'identifier': {'readonly': True},
10725    }
10726
10727    _attribute_map = {
10728        'id': {'key': 'id', 'type': 'str'},
10729        'name': {'key': 'name', 'type': 'str'},
10730        'kind': {'key': 'kind', 'type': 'str'},
10731        'type': {'key': 'type', 'type': 'str'},
10732        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10733        'identifier': {'key': 'properties.identifier', 'type': 'int'},
10734        'href': {'key': 'properties.href', 'type': 'str'},
10735        'process': {'key': 'properties.process', 'type': 'str'},
10736        'start_address': {'key': 'properties.start_address', 'type': 'str'},
10737        'current_priority': {'key': 'properties.current_priority', 'type': 'int'},
10738        'priority_level': {'key': 'properties.priority_level', 'type': 'str'},
10739        'base_priority': {'key': 'properties.base_priority', 'type': 'int'},
10740        'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'},
10741        'total_processor_time': {'key': 'properties.total_processor_time', 'type': 'str'},
10742        'user_processor_time': {'key': 'properties.user_processor_time', 'type': 'str'},
10743        'state': {'key': 'properties.state', 'type': 'str'},
10744        'wait_reason': {'key': 'properties.wait_reason', 'type': 'str'},
10745    }
10746
10747    def __init__(
10748        self,
10749        **kwargs
10750    ):
10751        super(ProcessThreadInfo, self).__init__(**kwargs)
10752        self.identifier = None
10753        self.href = kwargs.get('href', None)
10754        self.process = kwargs.get('process', None)
10755        self.start_address = kwargs.get('start_address', None)
10756        self.current_priority = kwargs.get('current_priority', None)
10757        self.priority_level = kwargs.get('priority_level', None)
10758        self.base_priority = kwargs.get('base_priority', None)
10759        self.start_time = kwargs.get('start_time', None)
10760        self.total_processor_time = kwargs.get('total_processor_time', None)
10761        self.user_processor_time = kwargs.get('user_processor_time', None)
10762        self.state = kwargs.get('state', None)
10763        self.wait_reason = kwargs.get('wait_reason', None)
10764
10765
10766class ProcessThreadInfoCollection(msrest.serialization.Model):
10767    """Collection of Kudu thread information elements.
10768
10769    Variables are only populated by the server, and will be ignored when sending a request.
10770
10771    All required parameters must be populated in order to send to Azure.
10772
10773    :param value: Required. Collection of resources.
10774    :type value: list[~azure.mgmt.web.v2020_09_01.models.ProcessThreadInfo]
10775    :ivar next_link: Link to next page of resources.
10776    :vartype next_link: str
10777    """
10778
10779    _validation = {
10780        'value': {'required': True},
10781        'next_link': {'readonly': True},
10782    }
10783
10784    _attribute_map = {
10785        'value': {'key': 'value', 'type': '[ProcessThreadInfo]'},
10786        'next_link': {'key': 'nextLink', 'type': 'str'},
10787    }
10788
10789    def __init__(
10790        self,
10791        **kwargs
10792    ):
10793        super(ProcessThreadInfoCollection, self).__init__(**kwargs)
10794        self.value = kwargs['value']
10795        self.next_link = None
10796
10797
10798class PublicCertificate(ProxyOnlyResource):
10799    """Public certificate object.
10800
10801    Variables are only populated by the server, and will be ignored when sending a request.
10802
10803    :ivar id: Resource Id.
10804    :vartype id: str
10805    :ivar name: Resource Name.
10806    :vartype name: str
10807    :param kind: Kind of resource.
10808    :type kind: str
10809    :ivar type: Resource type.
10810    :vartype type: str
10811    :ivar system_data: The system metadata relating to this resource.
10812    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10813    :param blob: Public Certificate byte array.
10814    :type blob: bytearray
10815    :param public_certificate_location: Public Certificate Location. Possible values include:
10816     "CurrentUserMy", "LocalMachineMy", "Unknown".
10817    :type public_certificate_location: str or
10818     ~azure.mgmt.web.v2020_09_01.models.PublicCertificateLocation
10819    :ivar thumbprint: Certificate Thumbprint.
10820    :vartype thumbprint: str
10821    """
10822
10823    _validation = {
10824        'id': {'readonly': True},
10825        'name': {'readonly': True},
10826        'type': {'readonly': True},
10827        'system_data': {'readonly': True},
10828        'thumbprint': {'readonly': True},
10829    }
10830
10831    _attribute_map = {
10832        'id': {'key': 'id', 'type': 'str'},
10833        'name': {'key': 'name', 'type': 'str'},
10834        'kind': {'key': 'kind', 'type': 'str'},
10835        'type': {'key': 'type', 'type': 'str'},
10836        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10837        'blob': {'key': 'properties.blob', 'type': 'bytearray'},
10838        'public_certificate_location': {'key': 'properties.publicCertificateLocation', 'type': 'str'},
10839        'thumbprint': {'key': 'properties.thumbprint', 'type': 'str'},
10840    }
10841
10842    def __init__(
10843        self,
10844        **kwargs
10845    ):
10846        super(PublicCertificate, self).__init__(**kwargs)
10847        self.blob = kwargs.get('blob', None)
10848        self.public_certificate_location = kwargs.get('public_certificate_location', None)
10849        self.thumbprint = None
10850
10851
10852class PublicCertificateCollection(msrest.serialization.Model):
10853    """Collection of public certificates.
10854
10855    Variables are only populated by the server, and will be ignored when sending a request.
10856
10857    All required parameters must be populated in order to send to Azure.
10858
10859    :param value: Required. Collection of resources.
10860    :type value: list[~azure.mgmt.web.v2020_09_01.models.PublicCertificate]
10861    :ivar next_link: Link to next page of resources.
10862    :vartype next_link: str
10863    """
10864
10865    _validation = {
10866        'value': {'required': True},
10867        'next_link': {'readonly': True},
10868    }
10869
10870    _attribute_map = {
10871        'value': {'key': 'value', 'type': '[PublicCertificate]'},
10872        'next_link': {'key': 'nextLink', 'type': 'str'},
10873    }
10874
10875    def __init__(
10876        self,
10877        **kwargs
10878    ):
10879        super(PublicCertificateCollection, self).__init__(**kwargs)
10880        self.value = kwargs['value']
10881        self.next_link = None
10882
10883
10884class PushSettings(ProxyOnlyResource):
10885    """Push settings for the App.
10886
10887    Variables are only populated by the server, and will be ignored when sending a request.
10888
10889    :ivar id: Resource Id.
10890    :vartype id: str
10891    :ivar name: Resource Name.
10892    :vartype name: str
10893    :param kind: Kind of resource.
10894    :type kind: str
10895    :ivar type: Resource type.
10896    :vartype type: str
10897    :ivar system_data: The system metadata relating to this resource.
10898    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
10899    :param is_push_enabled: Gets or sets a flag indicating whether the Push endpoint is enabled.
10900    :type is_push_enabled: bool
10901    :param tag_whitelist_json: Gets or sets a JSON string containing a list of tags that are
10902     whitelisted for use by the push registration endpoint.
10903    :type tag_whitelist_json: str
10904    :param tags_requiring_auth: Gets or sets a JSON string containing a list of tags that require
10905     user authentication to be used in the push registration endpoint.
10906     Tags can consist of alphanumeric characters and the following:
10907     '_', '@', '#', '.', ':', '-'.
10908     Validation should be performed at the PushRequestHandler.
10909    :type tags_requiring_auth: str
10910    :param dynamic_tags_json: Gets or sets a JSON string containing a list of dynamic tags that
10911     will be evaluated from user claims in the push registration endpoint.
10912    :type dynamic_tags_json: str
10913    """
10914
10915    _validation = {
10916        'id': {'readonly': True},
10917        'name': {'readonly': True},
10918        'type': {'readonly': True},
10919        'system_data': {'readonly': True},
10920    }
10921
10922    _attribute_map = {
10923        'id': {'key': 'id', 'type': 'str'},
10924        'name': {'key': 'name', 'type': 'str'},
10925        'kind': {'key': 'kind', 'type': 'str'},
10926        'type': {'key': 'type', 'type': 'str'},
10927        'system_data': {'key': 'systemData', 'type': 'SystemData'},
10928        'is_push_enabled': {'key': 'properties.isPushEnabled', 'type': 'bool'},
10929        'tag_whitelist_json': {'key': 'properties.tagWhitelistJson', 'type': 'str'},
10930        'tags_requiring_auth': {'key': 'properties.tagsRequiringAuth', 'type': 'str'},
10931        'dynamic_tags_json': {'key': 'properties.dynamicTagsJson', 'type': 'str'},
10932    }
10933
10934    def __init__(
10935        self,
10936        **kwargs
10937    ):
10938        super(PushSettings, self).__init__(**kwargs)
10939        self.is_push_enabled = kwargs.get('is_push_enabled', None)
10940        self.tag_whitelist_json = kwargs.get('tag_whitelist_json', None)
10941        self.tags_requiring_auth = kwargs.get('tags_requiring_auth', None)
10942        self.dynamic_tags_json = kwargs.get('dynamic_tags_json', None)
10943
10944
10945class RampUpRule(msrest.serialization.Model):
10946    """Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change routing % based on performance.
10947
10948    :param action_host_name: Hostname of a slot to which the traffic will be redirected if decided
10949     to. E.g. myapp-stage.azurewebsites.net.
10950    :type action_host_name: str
10951    :param reroute_percentage: Percentage of the traffic which will be redirected to
10952     :code:`<code>ActionHostName</code>`.
10953    :type reroute_percentage: float
10954    :param change_step: In auto ramp up scenario this is the step to add/remove from
10955     :code:`<code>ReroutePercentage</code>` until it reaches
10956     \n:code:`<code>MinReroutePercentage</code>` or
10957     :code:`<code>MaxReroutePercentage</code>`. Site metrics are checked every N minutes specified
10958     in :code:`<code>ChangeIntervalInMinutes</code>`.\nCustom decision algorithm
10959     can be provided in TiPCallback site extension which URL can be specified in
10960     :code:`<code>ChangeDecisionCallbackUrl</code>`.
10961    :type change_step: float
10962    :param change_interval_in_minutes: Specifies interval in minutes to reevaluate
10963     ReroutePercentage.
10964    :type change_interval_in_minutes: int
10965    :param min_reroute_percentage: Specifies lower boundary above which ReroutePercentage will
10966     stay.
10967    :type min_reroute_percentage: float
10968    :param max_reroute_percentage: Specifies upper boundary below which ReroutePercentage will
10969     stay.
10970    :type max_reroute_percentage: float
10971    :param change_decision_callback_url: Custom decision algorithm can be provided in TiPCallback
10972     site extension which URL can be specified. See TiPCallback site extension for the scaffold and
10973     contracts.
10974     https://www.siteextensions.net/packages/TiPCallback/.
10975    :type change_decision_callback_url: str
10976    :param name: Name of the routing rule. The recommended name would be to point to the slot which
10977     will receive the traffic in the experiment.
10978    :type name: str
10979    """
10980
10981    _attribute_map = {
10982        'action_host_name': {'key': 'actionHostName', 'type': 'str'},
10983        'reroute_percentage': {'key': 'reroutePercentage', 'type': 'float'},
10984        'change_step': {'key': 'changeStep', 'type': 'float'},
10985        'change_interval_in_minutes': {'key': 'changeIntervalInMinutes', 'type': 'int'},
10986        'min_reroute_percentage': {'key': 'minReroutePercentage', 'type': 'float'},
10987        'max_reroute_percentage': {'key': 'maxReroutePercentage', 'type': 'float'},
10988        'change_decision_callback_url': {'key': 'changeDecisionCallbackUrl', 'type': 'str'},
10989        'name': {'key': 'name', 'type': 'str'},
10990    }
10991
10992    def __init__(
10993        self,
10994        **kwargs
10995    ):
10996        super(RampUpRule, self).__init__(**kwargs)
10997        self.action_host_name = kwargs.get('action_host_name', None)
10998        self.reroute_percentage = kwargs.get('reroute_percentage', None)
10999        self.change_step = kwargs.get('change_step', None)
11000        self.change_interval_in_minutes = kwargs.get('change_interval_in_minutes', None)
11001        self.min_reroute_percentage = kwargs.get('min_reroute_percentage', None)
11002        self.max_reroute_percentage = kwargs.get('max_reroute_percentage', None)
11003        self.change_decision_callback_url = kwargs.get('change_decision_callback_url', None)
11004        self.name = kwargs.get('name', None)
11005
11006
11007class Recommendation(ProxyOnlyResource):
11008    """Represents a recommendation result generated by the recommendation engine.
11009
11010    Variables are only populated by the server, and will be ignored when sending a request.
11011
11012    :ivar id: Resource Id.
11013    :vartype id: str
11014    :ivar name: Resource Name.
11015    :vartype name: str
11016    :param kind: Kind of resource.
11017    :type kind: str
11018    :ivar type: Resource type.
11019    :vartype type: str
11020    :ivar system_data: The system metadata relating to this resource.
11021    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11022    :param creation_time: Timestamp when this instance was created.
11023    :type creation_time: ~datetime.datetime
11024    :param recommendation_id: A GUID value that each recommendation object is associated with.
11025    :type recommendation_id: str
11026    :param resource_id: Full ARM resource ID string that this recommendation object is associated
11027     with.
11028    :type resource_id: str
11029    :param resource_scope: Name of a resource type this recommendation applies, e.g. Subscription,
11030     ServerFarm, Site. Possible values include: "ServerFarm", "Subscription", "WebSite".
11031    :type resource_scope: str or ~azure.mgmt.web.v2020_09_01.models.ResourceScopeType
11032    :param rule_name: Unique name of the rule.
11033    :type rule_name: str
11034    :param display_name: UI friendly name of the rule (may not be unique).
11035    :type display_name: str
11036    :param message: Recommendation text.
11037    :type message: str
11038    :param level: Level indicating how critical this recommendation can impact. Possible values
11039     include: "Critical", "Warning", "Information", "NonUrgentSuggestion".
11040    :type level: str or ~azure.mgmt.web.v2020_09_01.models.NotificationLevel
11041    :param channels: List of channels that this recommendation can apply. Possible values include:
11042     "Notification", "Api", "Email", "Webhook", "All".
11043    :type channels: str or ~azure.mgmt.web.v2020_09_01.models.Channels
11044    :ivar category_tags: The list of category tags that this recommendation belongs to.
11045    :vartype category_tags: list[str]
11046    :param action_name: Name of action recommended by this object.
11047    :type action_name: str
11048    :param enabled: True if this recommendation is still valid (i.e. "actionable"). False if it is
11049     invalid.
11050    :type enabled: int
11051    :param states: The list of states of this recommendation. If it's null then it should be
11052     considered "Active".
11053    :type states: list[str]
11054    :param start_time: The beginning time in UTC of a range that the recommendation refers to.
11055    :type start_time: ~datetime.datetime
11056    :param end_time: The end time in UTC of a range that the recommendation refers to.
11057    :type end_time: ~datetime.datetime
11058    :param next_notification_time: When to notify this recommendation next in UTC. Null means that
11059     this will never be notified anymore.
11060    :type next_notification_time: ~datetime.datetime
11061    :param notification_expiration_time: Date and time in UTC when this notification expires.
11062    :type notification_expiration_time: ~datetime.datetime
11063    :param notified_time: Last timestamp in UTC this instance was actually notified. Null means
11064     that this recommendation hasn't been notified yet.
11065    :type notified_time: ~datetime.datetime
11066    :param score: A metric value measured by the rule.
11067    :type score: float
11068    :param is_dynamic: True if this is associated with a dynamically added rule.
11069    :type is_dynamic: bool
11070    :param extension_name: Extension name of the portal if exists.
11071    :type extension_name: str
11072    :param blade_name: Deep link to a blade on the portal.
11073    :type blade_name: str
11074    :param forward_link: Forward link to an external document associated with the rule.
11075    :type forward_link: str
11076    """
11077
11078    _validation = {
11079        'id': {'readonly': True},
11080        'name': {'readonly': True},
11081        'type': {'readonly': True},
11082        'system_data': {'readonly': True},
11083        'category_tags': {'readonly': True},
11084    }
11085
11086    _attribute_map = {
11087        'id': {'key': 'id', 'type': 'str'},
11088        'name': {'key': 'name', 'type': 'str'},
11089        'kind': {'key': 'kind', 'type': 'str'},
11090        'type': {'key': 'type', 'type': 'str'},
11091        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11092        'creation_time': {'key': 'properties.creationTime', 'type': 'iso-8601'},
11093        'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'},
11094        'resource_id': {'key': 'properties.resourceId', 'type': 'str'},
11095        'resource_scope': {'key': 'properties.resourceScope', 'type': 'str'},
11096        'rule_name': {'key': 'properties.ruleName', 'type': 'str'},
11097        'display_name': {'key': 'properties.displayName', 'type': 'str'},
11098        'message': {'key': 'properties.message', 'type': 'str'},
11099        'level': {'key': 'properties.level', 'type': 'str'},
11100        'channels': {'key': 'properties.channels', 'type': 'str'},
11101        'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'},
11102        'action_name': {'key': 'properties.actionName', 'type': 'str'},
11103        'enabled': {'key': 'properties.enabled', 'type': 'int'},
11104        'states': {'key': 'properties.states', 'type': '[str]'},
11105        'start_time': {'key': 'properties.startTime', 'type': 'iso-8601'},
11106        'end_time': {'key': 'properties.endTime', 'type': 'iso-8601'},
11107        'next_notification_time': {'key': 'properties.nextNotificationTime', 'type': 'iso-8601'},
11108        'notification_expiration_time': {'key': 'properties.notificationExpirationTime', 'type': 'iso-8601'},
11109        'notified_time': {'key': 'properties.notifiedTime', 'type': 'iso-8601'},
11110        'score': {'key': 'properties.score', 'type': 'float'},
11111        'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'},
11112        'extension_name': {'key': 'properties.extensionName', 'type': 'str'},
11113        'blade_name': {'key': 'properties.bladeName', 'type': 'str'},
11114        'forward_link': {'key': 'properties.forwardLink', 'type': 'str'},
11115    }
11116
11117    def __init__(
11118        self,
11119        **kwargs
11120    ):
11121        super(Recommendation, self).__init__(**kwargs)
11122        self.creation_time = kwargs.get('creation_time', None)
11123        self.recommendation_id = kwargs.get('recommendation_id', None)
11124        self.resource_id = kwargs.get('resource_id', None)
11125        self.resource_scope = kwargs.get('resource_scope', None)
11126        self.rule_name = kwargs.get('rule_name', None)
11127        self.display_name = kwargs.get('display_name', None)
11128        self.message = kwargs.get('message', None)
11129        self.level = kwargs.get('level', None)
11130        self.channels = kwargs.get('channels', None)
11131        self.category_tags = None
11132        self.action_name = kwargs.get('action_name', None)
11133        self.enabled = kwargs.get('enabled', None)
11134        self.states = kwargs.get('states', None)
11135        self.start_time = kwargs.get('start_time', None)
11136        self.end_time = kwargs.get('end_time', None)
11137        self.next_notification_time = kwargs.get('next_notification_time', None)
11138        self.notification_expiration_time = kwargs.get('notification_expiration_time', None)
11139        self.notified_time = kwargs.get('notified_time', None)
11140        self.score = kwargs.get('score', None)
11141        self.is_dynamic = kwargs.get('is_dynamic', None)
11142        self.extension_name = kwargs.get('extension_name', None)
11143        self.blade_name = kwargs.get('blade_name', None)
11144        self.forward_link = kwargs.get('forward_link', None)
11145
11146
11147class RecommendationCollection(msrest.serialization.Model):
11148    """Collection of recommendations.
11149
11150    Variables are only populated by the server, and will be ignored when sending a request.
11151
11152    All required parameters must be populated in order to send to Azure.
11153
11154    :param value: Required. Collection of resources.
11155    :type value: list[~azure.mgmt.web.v2020_09_01.models.Recommendation]
11156    :ivar next_link: Link to next page of resources.
11157    :vartype next_link: str
11158    """
11159
11160    _validation = {
11161        'value': {'required': True},
11162        'next_link': {'readonly': True},
11163    }
11164
11165    _attribute_map = {
11166        'value': {'key': 'value', 'type': '[Recommendation]'},
11167        'next_link': {'key': 'nextLink', 'type': 'str'},
11168    }
11169
11170    def __init__(
11171        self,
11172        **kwargs
11173    ):
11174        super(RecommendationCollection, self).__init__(**kwargs)
11175        self.value = kwargs['value']
11176        self.next_link = None
11177
11178
11179class RecommendationRule(ProxyOnlyResource):
11180    """Represents a recommendation rule that the recommendation engine can perform.
11181
11182    Variables are only populated by the server, and will be ignored when sending a request.
11183
11184    :ivar id: Resource Id.
11185    :vartype id: str
11186    :ivar name: Resource Name.
11187    :vartype name: str
11188    :param kind: Kind of resource.
11189    :type kind: str
11190    :ivar type: Resource type.
11191    :vartype type: str
11192    :ivar system_data: The system metadata relating to this resource.
11193    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11194    :param recommendation_name: Unique name of the rule.
11195    :type recommendation_name: str
11196    :param display_name: UI friendly name of the rule.
11197    :type display_name: str
11198    :param message: Localized name of the rule (Good for UI).
11199    :type message: str
11200    :param recommendation_id: Recommendation ID of an associated recommendation object tied to the
11201     rule, if exists.
11202     If such an object doesn't exist, it is set to null.
11203    :type recommendation_id: str
11204    :param description: Localized detailed description of the rule.
11205    :type description: str
11206    :param action_name: Name of action that is recommended by this rule in string.
11207    :type action_name: str
11208    :param level: Level of impact indicating how critical this rule is. Possible values include:
11209     "Critical", "Warning", "Information", "NonUrgentSuggestion".
11210    :type level: str or ~azure.mgmt.web.v2020_09_01.models.NotificationLevel
11211    :param channels: List of available channels that this rule applies. Possible values include:
11212     "Notification", "Api", "Email", "Webhook", "All".
11213    :type channels: str or ~azure.mgmt.web.v2020_09_01.models.Channels
11214    :ivar category_tags: The list of category tags that this recommendation rule belongs to.
11215    :vartype category_tags: list[str]
11216    :param is_dynamic: True if this is associated with a dynamically added rule.
11217    :type is_dynamic: bool
11218    :param extension_name: Extension name of the portal if exists. Applicable to dynamic rule only.
11219    :type extension_name: str
11220    :param blade_name: Deep link to a blade on the portal. Applicable to dynamic rule only.
11221    :type blade_name: str
11222    :param forward_link: Forward link to an external document associated with the rule. Applicable
11223     to dynamic rule only.
11224    :type forward_link: str
11225    """
11226
11227    _validation = {
11228        'id': {'readonly': True},
11229        'name': {'readonly': True},
11230        'type': {'readonly': True},
11231        'system_data': {'readonly': True},
11232        'category_tags': {'readonly': True},
11233    }
11234
11235    _attribute_map = {
11236        'id': {'key': 'id', 'type': 'str'},
11237        'name': {'key': 'name', 'type': 'str'},
11238        'kind': {'key': 'kind', 'type': 'str'},
11239        'type': {'key': 'type', 'type': 'str'},
11240        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11241        'recommendation_name': {'key': 'properties.recommendationName', 'type': 'str'},
11242        'display_name': {'key': 'properties.displayName', 'type': 'str'},
11243        'message': {'key': 'properties.message', 'type': 'str'},
11244        'recommendation_id': {'key': 'properties.recommendationId', 'type': 'str'},
11245        'description': {'key': 'properties.description', 'type': 'str'},
11246        'action_name': {'key': 'properties.actionName', 'type': 'str'},
11247        'level': {'key': 'properties.level', 'type': 'str'},
11248        'channels': {'key': 'properties.channels', 'type': 'str'},
11249        'category_tags': {'key': 'properties.categoryTags', 'type': '[str]'},
11250        'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'},
11251        'extension_name': {'key': 'properties.extensionName', 'type': 'str'},
11252        'blade_name': {'key': 'properties.bladeName', 'type': 'str'},
11253        'forward_link': {'key': 'properties.forwardLink', 'type': 'str'},
11254    }
11255
11256    def __init__(
11257        self,
11258        **kwargs
11259    ):
11260        super(RecommendationRule, self).__init__(**kwargs)
11261        self.recommendation_name = kwargs.get('recommendation_name', None)
11262        self.display_name = kwargs.get('display_name', None)
11263        self.message = kwargs.get('message', None)
11264        self.recommendation_id = kwargs.get('recommendation_id', None)
11265        self.description = kwargs.get('description', None)
11266        self.action_name = kwargs.get('action_name', None)
11267        self.level = kwargs.get('level', None)
11268        self.channels = kwargs.get('channels', None)
11269        self.category_tags = None
11270        self.is_dynamic = kwargs.get('is_dynamic', None)
11271        self.extension_name = kwargs.get('extension_name', None)
11272        self.blade_name = kwargs.get('blade_name', None)
11273        self.forward_link = kwargs.get('forward_link', None)
11274
11275
11276class ReissueCertificateOrderRequest(ProxyOnlyResource):
11277    """Class representing certificate reissue request.
11278
11279    Variables are only populated by the server, and will be ignored when sending a request.
11280
11281    :ivar id: Resource Id.
11282    :vartype id: str
11283    :ivar name: Resource Name.
11284    :vartype name: str
11285    :param kind: Kind of resource.
11286    :type kind: str
11287    :ivar type: Resource type.
11288    :vartype type: str
11289    :ivar system_data: The system metadata relating to this resource.
11290    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11291    :param key_size: Certificate Key Size.
11292    :type key_size: int
11293    :param delay_existing_revoke_in_hours: Delay in hours to revoke existing certificate after the
11294     new certificate is issued.
11295    :type delay_existing_revoke_in_hours: int
11296    :param csr: Csr to be used for re-key operation.
11297    :type csr: str
11298    :param is_private_key_external: Should we change the ASC type (from managed private key to
11299     external private key and vice versa).
11300    :type is_private_key_external: bool
11301    """
11302
11303    _validation = {
11304        'id': {'readonly': True},
11305        'name': {'readonly': True},
11306        'type': {'readonly': True},
11307        'system_data': {'readonly': True},
11308    }
11309
11310    _attribute_map = {
11311        'id': {'key': 'id', 'type': 'str'},
11312        'name': {'key': 'name', 'type': 'str'},
11313        'kind': {'key': 'kind', 'type': 'str'},
11314        'type': {'key': 'type', 'type': 'str'},
11315        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11316        'key_size': {'key': 'properties.keySize', 'type': 'int'},
11317        'delay_existing_revoke_in_hours': {'key': 'properties.delayExistingRevokeInHours', 'type': 'int'},
11318        'csr': {'key': 'properties.csr', 'type': 'str'},
11319        'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'},
11320    }
11321
11322    def __init__(
11323        self,
11324        **kwargs
11325    ):
11326        super(ReissueCertificateOrderRequest, self).__init__(**kwargs)
11327        self.key_size = kwargs.get('key_size', None)
11328        self.delay_existing_revoke_in_hours = kwargs.get('delay_existing_revoke_in_hours', None)
11329        self.csr = kwargs.get('csr', None)
11330        self.is_private_key_external = kwargs.get('is_private_key_external', None)
11331
11332
11333class RelayServiceConnectionEntity(ProxyOnlyResource):
11334    """Hybrid Connection for an App Service app.
11335
11336    Variables are only populated by the server, and will be ignored when sending a request.
11337
11338    :ivar id: Resource Id.
11339    :vartype id: str
11340    :ivar name: Resource Name.
11341    :vartype name: str
11342    :param kind: Kind of resource.
11343    :type kind: str
11344    :ivar type: Resource type.
11345    :vartype type: str
11346    :ivar system_data: The system metadata relating to this resource.
11347    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11348    :param entity_name:
11349    :type entity_name: str
11350    :param entity_connection_string:
11351    :type entity_connection_string: str
11352    :param resource_type:
11353    :type resource_type: str
11354    :param resource_connection_string:
11355    :type resource_connection_string: str
11356    :param hostname:
11357    :type hostname: str
11358    :param port:
11359    :type port: int
11360    :param biztalk_uri:
11361    :type biztalk_uri: str
11362    """
11363
11364    _validation = {
11365        'id': {'readonly': True},
11366        'name': {'readonly': True},
11367        'type': {'readonly': True},
11368        'system_data': {'readonly': True},
11369    }
11370
11371    _attribute_map = {
11372        'id': {'key': 'id', 'type': 'str'},
11373        'name': {'key': 'name', 'type': 'str'},
11374        'kind': {'key': 'kind', 'type': 'str'},
11375        'type': {'key': 'type', 'type': 'str'},
11376        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11377        'entity_name': {'key': 'properties.entityName', 'type': 'str'},
11378        'entity_connection_string': {'key': 'properties.entityConnectionString', 'type': 'str'},
11379        'resource_type': {'key': 'properties.resourceType', 'type': 'str'},
11380        'resource_connection_string': {'key': 'properties.resourceConnectionString', 'type': 'str'},
11381        'hostname': {'key': 'properties.hostname', 'type': 'str'},
11382        'port': {'key': 'properties.port', 'type': 'int'},
11383        'biztalk_uri': {'key': 'properties.biztalkUri', 'type': 'str'},
11384    }
11385
11386    def __init__(
11387        self,
11388        **kwargs
11389    ):
11390        super(RelayServiceConnectionEntity, self).__init__(**kwargs)
11391        self.entity_name = kwargs.get('entity_name', None)
11392        self.entity_connection_string = kwargs.get('entity_connection_string', None)
11393        self.resource_type = kwargs.get('resource_type', None)
11394        self.resource_connection_string = kwargs.get('resource_connection_string', None)
11395        self.hostname = kwargs.get('hostname', None)
11396        self.port = kwargs.get('port', None)
11397        self.biztalk_uri = kwargs.get('biztalk_uri', None)
11398
11399
11400class Rendering(msrest.serialization.Model):
11401    """Instructions for rendering the data.
11402
11403    :param type: Rendering Type. Possible values include: "NoGraph", "Table", "TimeSeries",
11404     "TimeSeriesPerInstance".
11405    :type type: str or ~azure.mgmt.web.v2020_09_01.models.RenderingType
11406    :param title: Title of data.
11407    :type title: str
11408    :param description: Description of the data that will help it be interpreted.
11409    :type description: str
11410    """
11411
11412    _attribute_map = {
11413        'type': {'key': 'type', 'type': 'str'},
11414        'title': {'key': 'title', 'type': 'str'},
11415        'description': {'key': 'description', 'type': 'str'},
11416    }
11417
11418    def __init__(
11419        self,
11420        **kwargs
11421    ):
11422        super(Rendering, self).__init__(**kwargs)
11423        self.type = kwargs.get('type', None)
11424        self.title = kwargs.get('title', None)
11425        self.description = kwargs.get('description', None)
11426
11427
11428class RenewCertificateOrderRequest(ProxyOnlyResource):
11429    """Class representing certificate renew request.
11430
11431    Variables are only populated by the server, and will be ignored when sending a request.
11432
11433    :ivar id: Resource Id.
11434    :vartype id: str
11435    :ivar name: Resource Name.
11436    :vartype name: str
11437    :param kind: Kind of resource.
11438    :type kind: str
11439    :ivar type: Resource type.
11440    :vartype type: str
11441    :ivar system_data: The system metadata relating to this resource.
11442    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11443    :param key_size: Certificate Key Size.
11444    :type key_size: int
11445    :param csr: Csr to be used for re-key operation.
11446    :type csr: str
11447    :param is_private_key_external: Should we change the ASC type (from managed private key to
11448     external private key and vice versa).
11449    :type is_private_key_external: bool
11450    """
11451
11452    _validation = {
11453        'id': {'readonly': True},
11454        'name': {'readonly': True},
11455        'type': {'readonly': True},
11456        'system_data': {'readonly': True},
11457    }
11458
11459    _attribute_map = {
11460        'id': {'key': 'id', 'type': 'str'},
11461        'name': {'key': 'name', 'type': 'str'},
11462        'kind': {'key': 'kind', 'type': 'str'},
11463        'type': {'key': 'type', 'type': 'str'},
11464        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11465        'key_size': {'key': 'properties.keySize', 'type': 'int'},
11466        'csr': {'key': 'properties.csr', 'type': 'str'},
11467        'is_private_key_external': {'key': 'properties.isPrivateKeyExternal', 'type': 'bool'},
11468    }
11469
11470    def __init__(
11471        self,
11472        **kwargs
11473    ):
11474        super(RenewCertificateOrderRequest, self).__init__(**kwargs)
11475        self.key_size = kwargs.get('key_size', None)
11476        self.csr = kwargs.get('csr', None)
11477        self.is_private_key_external = kwargs.get('is_private_key_external', None)
11478
11479
11480class RequestsBasedTrigger(msrest.serialization.Model):
11481    """Trigger based on total requests.
11482
11483    :param count: Request Count.
11484    :type count: int
11485    :param time_interval: Time interval.
11486    :type time_interval: str
11487    """
11488
11489    _attribute_map = {
11490        'count': {'key': 'count', 'type': 'int'},
11491        'time_interval': {'key': 'timeInterval', 'type': 'str'},
11492    }
11493
11494    def __init__(
11495        self,
11496        **kwargs
11497    ):
11498        super(RequestsBasedTrigger, self).__init__(**kwargs)
11499        self.count = kwargs.get('count', None)
11500        self.time_interval = kwargs.get('time_interval', None)
11501
11502
11503class ResourceCollection(msrest.serialization.Model):
11504    """Collection of resources.
11505
11506    Variables are only populated by the server, and will be ignored when sending a request.
11507
11508    All required parameters must be populated in order to send to Azure.
11509
11510    :param value: Required. Collection of resources.
11511    :type value: list[str]
11512    :ivar next_link: Link to next page of resources.
11513    :vartype next_link: str
11514    """
11515
11516    _validation = {
11517        'value': {'required': True},
11518        'next_link': {'readonly': True},
11519    }
11520
11521    _attribute_map = {
11522        'value': {'key': 'value', 'type': '[str]'},
11523        'next_link': {'key': 'nextLink', 'type': 'str'},
11524    }
11525
11526    def __init__(
11527        self,
11528        **kwargs
11529    ):
11530        super(ResourceCollection, self).__init__(**kwargs)
11531        self.value = kwargs['value']
11532        self.next_link = None
11533
11534
11535class ResourceHealthMetadata(ProxyOnlyResource):
11536    """Used for getting ResourceHealthCheck settings.
11537
11538    Variables are only populated by the server, and will be ignored when sending a request.
11539
11540    :ivar id: Resource Id.
11541    :vartype id: str
11542    :ivar name: Resource Name.
11543    :vartype name: str
11544    :param kind: Kind of resource.
11545    :type kind: str
11546    :ivar type: Resource type.
11547    :vartype type: str
11548    :ivar system_data: The system metadata relating to this resource.
11549    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11550    :param category: The category that the resource matches in the RHC Policy File.
11551    :type category: str
11552    :param signal_availability: Is there a health signal for the resource.
11553    :type signal_availability: bool
11554    """
11555
11556    _validation = {
11557        'id': {'readonly': True},
11558        'name': {'readonly': True},
11559        'type': {'readonly': True},
11560        'system_data': {'readonly': True},
11561    }
11562
11563    _attribute_map = {
11564        'id': {'key': 'id', 'type': 'str'},
11565        'name': {'key': 'name', 'type': 'str'},
11566        'kind': {'key': 'kind', 'type': 'str'},
11567        'type': {'key': 'type', 'type': 'str'},
11568        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11569        'category': {'key': 'properties.category', 'type': 'str'},
11570        'signal_availability': {'key': 'properties.signalAvailability', 'type': 'bool'},
11571    }
11572
11573    def __init__(
11574        self,
11575        **kwargs
11576    ):
11577        super(ResourceHealthMetadata, self).__init__(**kwargs)
11578        self.category = kwargs.get('category', None)
11579        self.signal_availability = kwargs.get('signal_availability', None)
11580
11581
11582class ResourceHealthMetadataCollection(msrest.serialization.Model):
11583    """Collection of resource health metadata.
11584
11585    Variables are only populated by the server, and will be ignored when sending a request.
11586
11587    All required parameters must be populated in order to send to Azure.
11588
11589    :param value: Required. Collection of resources.
11590    :type value: list[~azure.mgmt.web.v2020_09_01.models.ResourceHealthMetadata]
11591    :ivar next_link: Link to next page of resources.
11592    :vartype next_link: str
11593    """
11594
11595    _validation = {
11596        'value': {'required': True},
11597        'next_link': {'readonly': True},
11598    }
11599
11600    _attribute_map = {
11601        'value': {'key': 'value', 'type': '[ResourceHealthMetadata]'},
11602        'next_link': {'key': 'nextLink', 'type': 'str'},
11603    }
11604
11605    def __init__(
11606        self,
11607        **kwargs
11608    ):
11609        super(ResourceHealthMetadataCollection, self).__init__(**kwargs)
11610        self.value = kwargs['value']
11611        self.next_link = None
11612
11613
11614class ResourceMetricAvailability(msrest.serialization.Model):
11615    """Metrics availability and retention.
11616
11617    Variables are only populated by the server, and will be ignored when sending a request.
11618
11619    :ivar time_grain: Time grain .
11620    :vartype time_grain: str
11621    :ivar retention: Retention period for the current time grain.
11622    :vartype retention: str
11623    """
11624
11625    _validation = {
11626        'time_grain': {'readonly': True},
11627        'retention': {'readonly': True},
11628    }
11629
11630    _attribute_map = {
11631        'time_grain': {'key': 'timeGrain', 'type': 'str'},
11632        'retention': {'key': 'retention', 'type': 'str'},
11633    }
11634
11635    def __init__(
11636        self,
11637        **kwargs
11638    ):
11639        super(ResourceMetricAvailability, self).__init__(**kwargs)
11640        self.time_grain = None
11641        self.retention = None
11642
11643
11644class ResourceMetricDefinition(ProxyOnlyResource):
11645    """Metadata for the metrics.
11646
11647    Variables are only populated by the server, and will be ignored when sending a request.
11648
11649    :ivar id: Resource Id.
11650    :vartype id: str
11651    :ivar name: Resource Name.
11652    :vartype name: str
11653    :param kind: Kind of resource.
11654    :type kind: str
11655    :ivar type: Resource type.
11656    :vartype type: str
11657    :ivar system_data: The system metadata relating to this resource.
11658    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11659    :ivar unit: Unit of the metric.
11660    :vartype unit: str
11661    :ivar primary_aggregation_type: Primary aggregation type.
11662    :vartype primary_aggregation_type: str
11663    :ivar metric_availabilities: List of time grains supported for the metric together with
11664     retention period.
11665    :vartype metric_availabilities:
11666     list[~azure.mgmt.web.v2020_09_01.models.ResourceMetricAvailability]
11667    :ivar resource_uri: Resource URI.
11668    :vartype resource_uri: str
11669    :ivar properties: Resource metric definition properties.
11670    :vartype properties: dict[str, str]
11671    """
11672
11673    _validation = {
11674        'id': {'readonly': True},
11675        'name': {'readonly': True},
11676        'type': {'readonly': True},
11677        'system_data': {'readonly': True},
11678        'unit': {'readonly': True},
11679        'primary_aggregation_type': {'readonly': True},
11680        'metric_availabilities': {'readonly': True},
11681        'resource_uri': {'readonly': True},
11682        'properties': {'readonly': True},
11683    }
11684
11685    _attribute_map = {
11686        'id': {'key': 'id', 'type': 'str'},
11687        'name': {'key': 'name', 'type': 'str'},
11688        'kind': {'key': 'kind', 'type': 'str'},
11689        'type': {'key': 'type', 'type': 'str'},
11690        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11691        'unit': {'key': 'properties.unit', 'type': 'str'},
11692        'primary_aggregation_type': {'key': 'properties.primaryAggregationType', 'type': 'str'},
11693        'metric_availabilities': {'key': 'properties.metricAvailabilities', 'type': '[ResourceMetricAvailability]'},
11694        'resource_uri': {'key': 'properties.resourceUri', 'type': 'str'},
11695        'properties': {'key': 'properties.properties', 'type': '{str}'},
11696    }
11697
11698    def __init__(
11699        self,
11700        **kwargs
11701    ):
11702        super(ResourceMetricDefinition, self).__init__(**kwargs)
11703        self.unit = None
11704        self.primary_aggregation_type = None
11705        self.metric_availabilities = None
11706        self.resource_uri = None
11707        self.properties = None
11708
11709
11710class ResourceMetricDefinitionCollection(msrest.serialization.Model):
11711    """Collection of metric definitions.
11712
11713    Variables are only populated by the server, and will be ignored when sending a request.
11714
11715    All required parameters must be populated in order to send to Azure.
11716
11717    :param value: Required. Collection of resources.
11718    :type value: list[~azure.mgmt.web.v2020_09_01.models.ResourceMetricDefinition]
11719    :ivar next_link: Link to next page of resources.
11720    :vartype next_link: str
11721    """
11722
11723    _validation = {
11724        'value': {'required': True},
11725        'next_link': {'readonly': True},
11726    }
11727
11728    _attribute_map = {
11729        'value': {'key': 'value', 'type': '[ResourceMetricDefinition]'},
11730        'next_link': {'key': 'nextLink', 'type': 'str'},
11731    }
11732
11733    def __init__(
11734        self,
11735        **kwargs
11736    ):
11737        super(ResourceMetricDefinitionCollection, self).__init__(**kwargs)
11738        self.value = kwargs['value']
11739        self.next_link = None
11740
11741
11742class ResourceNameAvailability(msrest.serialization.Model):
11743    """Information regarding availability of a resource name.
11744
11745    :param name_available: :code:`<code>true</code>` indicates name is valid and available.
11746     :code:`<code>false</code>` indicates the name is invalid, unavailable, or both.
11747    :type name_available: bool
11748    :param reason: :code:`<code>Invalid</code>` indicates the name provided does not match Azure
11749     App Service naming requirements. :code:`<code>AlreadyExists</code>` indicates that the name is
11750     already in use and is therefore unavailable. Possible values include: "Invalid",
11751     "AlreadyExists".
11752    :type reason: str or ~azure.mgmt.web.v2020_09_01.models.InAvailabilityReasonType
11753    :param message: If reason == invalid, provide the user with the reason why the given name is
11754     invalid, and provide the resource naming requirements so that the user can select a valid name.
11755     If reason == AlreadyExists, explain that resource name is already in use, and direct them to
11756     select a different name.
11757    :type message: str
11758    """
11759
11760    _attribute_map = {
11761        'name_available': {'key': 'nameAvailable', 'type': 'bool'},
11762        'reason': {'key': 'reason', 'type': 'str'},
11763        'message': {'key': 'message', 'type': 'str'},
11764    }
11765
11766    def __init__(
11767        self,
11768        **kwargs
11769    ):
11770        super(ResourceNameAvailability, self).__init__(**kwargs)
11771        self.name_available = kwargs.get('name_available', None)
11772        self.reason = kwargs.get('reason', None)
11773        self.message = kwargs.get('message', None)
11774
11775
11776class ResourceNameAvailabilityRequest(msrest.serialization.Model):
11777    """Resource name availability request content.
11778
11779    All required parameters must be populated in order to send to Azure.
11780
11781    :param name: Required. Resource name to verify.
11782    :type name: str
11783    :param type: Required. Resource type used for verification. Possible values include: "Site",
11784     "Slot", "HostingEnvironment", "PublishingUser", "Microsoft.Web/sites",
11785     "Microsoft.Web/sites/slots", "Microsoft.Web/hostingEnvironments",
11786     "Microsoft.Web/publishingUsers".
11787    :type type: str or ~azure.mgmt.web.v2020_09_01.models.CheckNameResourceTypes
11788    :param is_fqdn: Is fully qualified domain name.
11789    :type is_fqdn: bool
11790    """
11791
11792    _validation = {
11793        'name': {'required': True},
11794        'type': {'required': True},
11795    }
11796
11797    _attribute_map = {
11798        'name': {'key': 'name', 'type': 'str'},
11799        'type': {'key': 'type', 'type': 'str'},
11800        'is_fqdn': {'key': 'isFqdn', 'type': 'bool'},
11801    }
11802
11803    def __init__(
11804        self,
11805        **kwargs
11806    ):
11807        super(ResourceNameAvailabilityRequest, self).__init__(**kwargs)
11808        self.name = kwargs['name']
11809        self.type = kwargs['type']
11810        self.is_fqdn = kwargs.get('is_fqdn', None)
11811
11812
11813class ResponseMetaData(msrest.serialization.Model):
11814    """ResponseMetaData.
11815
11816    :param data_source: Source of the Data.
11817    :type data_source: ~azure.mgmt.web.v2020_09_01.models.DataSource
11818    """
11819
11820    _attribute_map = {
11821        'data_source': {'key': 'dataSource', 'type': 'DataSource'},
11822    }
11823
11824    def __init__(
11825        self,
11826        **kwargs
11827    ):
11828        super(ResponseMetaData, self).__init__(**kwargs)
11829        self.data_source = kwargs.get('data_source', None)
11830
11831
11832class RestoreRequest(ProxyOnlyResource):
11833    """Description of a restore request.
11834
11835    Variables are only populated by the server, and will be ignored when sending a request.
11836
11837    :ivar id: Resource Id.
11838    :vartype id: str
11839    :ivar name: Resource Name.
11840    :vartype name: str
11841    :param kind: Kind of resource.
11842    :type kind: str
11843    :ivar type: Resource type.
11844    :vartype type: str
11845    :ivar system_data: The system metadata relating to this resource.
11846    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11847    :param storage_account_url: SAS URL to the container.
11848    :type storage_account_url: str
11849    :param blob_name: Name of a blob which contains the backup.
11850    :type blob_name: str
11851    :param overwrite: :code:`<code>true</code>` if the restore operation can overwrite target app;
11852     otherwise, :code:`<code>false</code>`. :code:`<code>true</code>` is needed if trying to restore
11853     over an existing app.
11854    :type overwrite: bool
11855    :param site_name: Name of an app.
11856    :type site_name: str
11857    :param databases: Collection of databases which should be restored. This list has to match the
11858     list of databases included in the backup.
11859    :type databases: list[~azure.mgmt.web.v2020_09_01.models.DatabaseBackupSetting]
11860    :param ignore_conflicting_host_names: Changes a logic when restoring an app with custom
11861     domains. :code:`<code>true</code>` to remove custom domains automatically. If
11862     :code:`<code>false</code>`, custom domains are added to
11863     the app's object when it is being restored, but that might fail due to conflicts during the
11864     operation.
11865    :type ignore_conflicting_host_names: bool
11866    :param ignore_databases: Ignore the databases and only restore the site content.
11867    :type ignore_databases: bool
11868    :param app_service_plan: Specify app service plan that will own restored site.
11869    :type app_service_plan: str
11870    :param operation_type: Operation type. Possible values include: "Default", "Clone",
11871     "Relocation", "Snapshot", "CloudFS". Default value: "Default".
11872    :type operation_type: str or ~azure.mgmt.web.v2020_09_01.models.BackupRestoreOperationType
11873    :param adjust_connection_strings: :code:`<code>true</code>` if SiteConfig.ConnectionStrings
11874     should be set in new app; otherwise, :code:`<code>false</code>`.
11875    :type adjust_connection_strings: bool
11876    :param hosting_environment: App Service Environment name, if needed (only when restoring an app
11877     to an App Service Environment).
11878    :type hosting_environment: str
11879    """
11880
11881    _validation = {
11882        'id': {'readonly': True},
11883        'name': {'readonly': True},
11884        'type': {'readonly': True},
11885        'system_data': {'readonly': True},
11886    }
11887
11888    _attribute_map = {
11889        'id': {'key': 'id', 'type': 'str'},
11890        'name': {'key': 'name', 'type': 'str'},
11891        'kind': {'key': 'kind', 'type': 'str'},
11892        'type': {'key': 'type', 'type': 'str'},
11893        'system_data': {'key': 'systemData', 'type': 'SystemData'},
11894        'storage_account_url': {'key': 'properties.storageAccountUrl', 'type': 'str'},
11895        'blob_name': {'key': 'properties.blobName', 'type': 'str'},
11896        'overwrite': {'key': 'properties.overwrite', 'type': 'bool'},
11897        'site_name': {'key': 'properties.siteName', 'type': 'str'},
11898        'databases': {'key': 'properties.databases', 'type': '[DatabaseBackupSetting]'},
11899        'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'},
11900        'ignore_databases': {'key': 'properties.ignoreDatabases', 'type': 'bool'},
11901        'app_service_plan': {'key': 'properties.appServicePlan', 'type': 'str'},
11902        'operation_type': {'key': 'properties.operationType', 'type': 'str'},
11903        'adjust_connection_strings': {'key': 'properties.adjustConnectionStrings', 'type': 'bool'},
11904        'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'},
11905    }
11906
11907    def __init__(
11908        self,
11909        **kwargs
11910    ):
11911        super(RestoreRequest, self).__init__(**kwargs)
11912        self.storage_account_url = kwargs.get('storage_account_url', None)
11913        self.blob_name = kwargs.get('blob_name', None)
11914        self.overwrite = kwargs.get('overwrite', None)
11915        self.site_name = kwargs.get('site_name', None)
11916        self.databases = kwargs.get('databases', None)
11917        self.ignore_conflicting_host_names = kwargs.get('ignore_conflicting_host_names', False)
11918        self.ignore_databases = kwargs.get('ignore_databases', False)
11919        self.app_service_plan = kwargs.get('app_service_plan', None)
11920        self.operation_type = kwargs.get('operation_type', "Default")
11921        self.adjust_connection_strings = kwargs.get('adjust_connection_strings', None)
11922        self.hosting_environment = kwargs.get('hosting_environment', None)
11923
11924
11925class ServiceSpecification(msrest.serialization.Model):
11926    """Resource metrics service provided by Microsoft.Insights resource provider.
11927
11928    :param metric_specifications:
11929    :type metric_specifications: list[~azure.mgmt.web.v2020_09_01.models.MetricSpecification]
11930    :param log_specifications:
11931    :type log_specifications: list[~azure.mgmt.web.v2020_09_01.models.LogSpecification]
11932    """
11933
11934    _attribute_map = {
11935        'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecification]'},
11936        'log_specifications': {'key': 'logSpecifications', 'type': '[LogSpecification]'},
11937    }
11938
11939    def __init__(
11940        self,
11941        **kwargs
11942    ):
11943        super(ServiceSpecification, self).__init__(**kwargs)
11944        self.metric_specifications = kwargs.get('metric_specifications', None)
11945        self.log_specifications = kwargs.get('log_specifications', None)
11946
11947
11948class Site(Resource):
11949    """A web app, a mobile app backend, or an API app.
11950
11951    Variables are only populated by the server, and will be ignored when sending a request.
11952
11953    All required parameters must be populated in order to send to Azure.
11954
11955    :ivar id: Resource Id.
11956    :vartype id: str
11957    :ivar name: Resource Name.
11958    :vartype name: str
11959    :param kind: Kind of resource.
11960    :type kind: str
11961    :param location: Required. Resource Location.
11962    :type location: str
11963    :ivar type: Resource type.
11964    :vartype type: str
11965    :param tags: A set of tags. Resource tags.
11966    :type tags: dict[str, str]
11967    :ivar system_data: The system metadata relating to this resource.
11968    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
11969    :param identity: Managed service identity.
11970    :type identity: ~azure.mgmt.web.v2020_09_01.models.ManagedServiceIdentity
11971    :ivar state: Current state of the app.
11972    :vartype state: str
11973    :ivar host_names: Hostnames associated with the app.
11974    :vartype host_names: list[str]
11975    :ivar repository_site_name: Name of the repository site.
11976    :vartype repository_site_name: str
11977    :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only.
11978     Possible values include: "Normal", "Exceeded".
11979    :vartype usage_state: str or ~azure.mgmt.web.v2020_09_01.models.UsageState
11980    :param enabled: :code:`<code>true</code>` if the app is enabled; otherwise,
11981     :code:`<code>false</code>`. Setting this value to false disables the app (takes the app
11982     offline).
11983    :type enabled: bool
11984    :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see
11985     HostNames) AND enabled. Otherwise,
11986     the app is not served on those hostnames.
11987    :vartype enabled_host_names: list[str]
11988    :ivar availability_state: Management information availability state for the app. Possible
11989     values include: "Normal", "Limited", "DisasterRecoveryMode".
11990    :vartype availability_state: str or ~azure.mgmt.web.v2020_09_01.models.SiteAvailabilityState
11991    :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's
11992     hostnames.
11993    :type host_name_ssl_states: list[~azure.mgmt.web.v2020_09_01.models.HostNameSslState]
11994    :param server_farm_id: Resource ID of the associated App Service plan, formatted as:
11995     "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
11996    :type server_farm_id: str
11997    :param reserved: :code:`<code>true</code>` if reserved; otherwise, :code:`<code>false</code>`.
11998    :type reserved: bool
11999    :param is_xenon: Obsolete: Hyper-V sandbox.
12000    :type is_xenon: bool
12001    :param hyper_v: Hyper-V sandbox.
12002    :type hyper_v: bool
12003    :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only.
12004    :vartype last_modified_time_utc: ~datetime.datetime
12005    :param site_config: Configuration of the app.
12006    :type site_config: ~azure.mgmt.web.v2020_09_01.models.SiteConfig
12007    :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app.
12008     Read-only.
12009    :vartype traffic_manager_host_names: list[str]
12010    :param scm_site_also_stopped: :code:`<code>true</code>` to stop SCM (KUDU) site when the app is
12011     stopped; otherwise, :code:`<code>false</code>`. The default is :code:`<code>false</code>`.
12012    :type scm_site_also_stopped: bool
12013    :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only.
12014    :vartype target_swap_slot: str
12015    :param hosting_environment_profile: App Service Environment to use for the app.
12016    :type hosting_environment_profile: ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
12017    :param client_affinity_enabled: :code:`<code>true</code>` to enable client affinity;
12018     :code:`<code>false</code>` to stop sending session affinity cookies, which route client
12019     requests in the same session to the same instance. Default is :code:`<code>true</code>`.
12020    :type client_affinity_enabled: bool
12021    :param client_cert_enabled: :code:`<code>true</code>` to enable client certificate
12022     authentication (TLS mutual authentication); otherwise, :code:`<code>false</code>`. Default is
12023     :code:`<code>false</code>`.
12024    :type client_cert_enabled: bool
12025    :param client_cert_mode: This composes with ClientCertEnabled setting.
12026
12027
12028     * ClientCertEnabled: false means ClientCert is ignored.
12029     * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
12030     * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or
12031     accepted. Possible values include: "Required", "Optional".
12032    :type client_cert_mode: str or ~azure.mgmt.web.v2020_09_01.models.ClientCertMode
12033    :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion
12034     paths.
12035    :type client_cert_exclusion_paths: str
12036    :param host_names_disabled: :code:`<code>true</code>` to disable the public hostnames of the
12037     app; otherwise, :code:`<code>false</code>`.
12038      If :code:`<code>true</code>`, the app is only accessible via API management process.
12039    :type host_names_disabled: bool
12040    :param custom_domain_verification_id: Unique identifier that verifies the custom domains
12041     assigned to the app. Customer will add this id to a txt record for verification.
12042    :type custom_domain_verification_id: str
12043    :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections
12044     (e.g. database access). Includes VIPs from tenants that site can be hosted with current
12045     settings. Read-only.
12046    :vartype outbound_ip_addresses: str
12047    :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound
12048     connections (e.g. database access). Includes VIPs from all tenants except dataComponent.
12049     Read-only.
12050    :vartype possible_outbound_ip_addresses: str
12051    :param container_size: Size of the function container.
12052    :type container_size: int
12053    :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic
12054     apps only).
12055    :type daily_memory_time_quota: int
12056    :ivar suspended_till: App suspended till in case memory-time quota is exceeded.
12057    :vartype suspended_till: ~datetime.datetime
12058    :ivar max_number_of_workers: Maximum number of workers.
12059     This only applies to Functions container.
12060    :vartype max_number_of_workers: int
12061    :param cloning_info: If specified during app creation, the app is cloned from a source app.
12062    :type cloning_info: ~azure.mgmt.web.v2020_09_01.models.CloningInfo
12063    :ivar resource_group: Name of the resource group the app belongs to. Read-only.
12064    :vartype resource_group: str
12065    :ivar is_default_container: :code:`<code>true</code>` if the app is a default container;
12066     otherwise, :code:`<code>false</code>`.
12067    :vartype is_default_container: bool
12068    :ivar default_host_name: Default hostname of the app. Read-only.
12069    :vartype default_host_name: str
12070    :ivar slot_swap_status: Status of the last deployment slot swap operation.
12071    :vartype slot_swap_status: ~azure.mgmt.web.v2020_09_01.models.SlotSwapStatus
12072    :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues
12073     redirect for
12074     http requests.
12075    :type https_only: bool
12076    :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual",
12077     "Failover", "ActiveActive", "GeoRedundant".
12078    :type redundancy_mode: str or ~azure.mgmt.web.v2020_09_01.models.RedundancyMode
12079    :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation.
12080    :vartype in_progress_operation_id: str
12081    """
12082
12083    _validation = {
12084        'id': {'readonly': True},
12085        'name': {'readonly': True},
12086        'location': {'required': True},
12087        'type': {'readonly': True},
12088        'system_data': {'readonly': True},
12089        'state': {'readonly': True},
12090        'host_names': {'readonly': True},
12091        'repository_site_name': {'readonly': True},
12092        'usage_state': {'readonly': True},
12093        'enabled_host_names': {'readonly': True},
12094        'availability_state': {'readonly': True},
12095        'last_modified_time_utc': {'readonly': True},
12096        'traffic_manager_host_names': {'readonly': True},
12097        'target_swap_slot': {'readonly': True},
12098        'outbound_ip_addresses': {'readonly': True},
12099        'possible_outbound_ip_addresses': {'readonly': True},
12100        'suspended_till': {'readonly': True},
12101        'max_number_of_workers': {'readonly': True},
12102        'resource_group': {'readonly': True},
12103        'is_default_container': {'readonly': True},
12104        'default_host_name': {'readonly': True},
12105        'slot_swap_status': {'readonly': True},
12106        'in_progress_operation_id': {'readonly': True},
12107    }
12108
12109    _attribute_map = {
12110        'id': {'key': 'id', 'type': 'str'},
12111        'name': {'key': 'name', 'type': 'str'},
12112        'kind': {'key': 'kind', 'type': 'str'},
12113        'location': {'key': 'location', 'type': 'str'},
12114        'type': {'key': 'type', 'type': 'str'},
12115        'tags': {'key': 'tags', 'type': '{str}'},
12116        'system_data': {'key': 'systemData', 'type': 'SystemData'},
12117        'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'},
12118        'state': {'key': 'properties.state', 'type': 'str'},
12119        'host_names': {'key': 'properties.hostNames', 'type': '[str]'},
12120        'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'},
12121        'usage_state': {'key': 'properties.usageState', 'type': 'str'},
12122        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
12123        'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'},
12124        'availability_state': {'key': 'properties.availabilityState', 'type': 'str'},
12125        'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'},
12126        'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'},
12127        'reserved': {'key': 'properties.reserved', 'type': 'bool'},
12128        'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'},
12129        'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'},
12130        'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'},
12131        'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'},
12132        'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'},
12133        'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'},
12134        'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'},
12135        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
12136        'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'},
12137        'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'},
12138        'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'},
12139        'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'},
12140        'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'},
12141        'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'},
12142        'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'},
12143        'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'},
12144        'container_size': {'key': 'properties.containerSize', 'type': 'int'},
12145        'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'},
12146        'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'},
12147        'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'},
12148        'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'},
12149        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
12150        'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'},
12151        'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'},
12152        'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'},
12153        'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'},
12154        'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'},
12155        'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'},
12156    }
12157
12158    def __init__(
12159        self,
12160        **kwargs
12161    ):
12162        super(Site, self).__init__(**kwargs)
12163        self.identity = kwargs.get('identity', None)
12164        self.state = None
12165        self.host_names = None
12166        self.repository_site_name = None
12167        self.usage_state = None
12168        self.enabled = kwargs.get('enabled', None)
12169        self.enabled_host_names = None
12170        self.availability_state = None
12171        self.host_name_ssl_states = kwargs.get('host_name_ssl_states', None)
12172        self.server_farm_id = kwargs.get('server_farm_id', None)
12173        self.reserved = kwargs.get('reserved', False)
12174        self.is_xenon = kwargs.get('is_xenon', False)
12175        self.hyper_v = kwargs.get('hyper_v', False)
12176        self.last_modified_time_utc = None
12177        self.site_config = kwargs.get('site_config', None)
12178        self.traffic_manager_host_names = None
12179        self.scm_site_also_stopped = kwargs.get('scm_site_also_stopped', False)
12180        self.target_swap_slot = None
12181        self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None)
12182        self.client_affinity_enabled = kwargs.get('client_affinity_enabled', None)
12183        self.client_cert_enabled = kwargs.get('client_cert_enabled', None)
12184        self.client_cert_mode = kwargs.get('client_cert_mode', None)
12185        self.client_cert_exclusion_paths = kwargs.get('client_cert_exclusion_paths', None)
12186        self.host_names_disabled = kwargs.get('host_names_disabled', None)
12187        self.custom_domain_verification_id = kwargs.get('custom_domain_verification_id', None)
12188        self.outbound_ip_addresses = None
12189        self.possible_outbound_ip_addresses = None
12190        self.container_size = kwargs.get('container_size', None)
12191        self.daily_memory_time_quota = kwargs.get('daily_memory_time_quota', None)
12192        self.suspended_till = None
12193        self.max_number_of_workers = None
12194        self.cloning_info = kwargs.get('cloning_info', None)
12195        self.resource_group = None
12196        self.is_default_container = None
12197        self.default_host_name = None
12198        self.slot_swap_status = None
12199        self.https_only = kwargs.get('https_only', None)
12200        self.redundancy_mode = kwargs.get('redundancy_mode', None)
12201        self.in_progress_operation_id = None
12202
12203
12204class SiteAuthSettings(ProxyOnlyResource):
12205    """Configuration settings for the Azure App Service Authentication / Authorization feature.
12206
12207    Variables are only populated by the server, and will be ignored when sending a request.
12208
12209    :ivar id: Resource Id.
12210    :vartype id: str
12211    :ivar name: Resource Name.
12212    :vartype name: str
12213    :param kind: Kind of resource.
12214    :type kind: str
12215    :ivar type: Resource type.
12216    :vartype type: str
12217    :ivar system_data: The system metadata relating to this resource.
12218    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
12219    :param enabled: :code:`<code>true</code>` if the Authentication / Authorization feature is
12220     enabled for the current app; otherwise, :code:`<code>false</code>`.
12221    :type enabled: bool
12222    :param runtime_version: The RuntimeVersion of the Authentication / Authorization feature in use
12223     for the current app.
12224     The setting in this value can control the behavior of certain features in the Authentication /
12225     Authorization module.
12226    :type runtime_version: str
12227    :param unauthenticated_client_action: The action to take when an unauthenticated client
12228     attempts to access the app. Possible values include: "RedirectToLoginPage", "AllowAnonymous".
12229    :type unauthenticated_client_action: str or
12230     ~azure.mgmt.web.v2020_09_01.models.UnauthenticatedClientAction
12231    :param token_store_enabled: :code:`<code>true</code>` to durably store platform-specific
12232     security tokens that are obtained during login flows; otherwise, :code:`<code>false</code>`.
12233      The default is :code:`<code>false</code>`.
12234    :type token_store_enabled: bool
12235    :param allowed_external_redirect_urls: External URLs that can be redirected to as part of
12236     logging in or logging out of the app. Note that the query string part of the URL is ignored.
12237     This is an advanced setting typically only needed by Windows Store application backends.
12238     Note that URLs within the current domain are always implicitly allowed.
12239    :type allowed_external_redirect_urls: list[str]
12240    :param default_provider: The default authentication provider to use when multiple providers are
12241     configured.
12242     This setting is only needed if multiple providers are configured and the unauthenticated
12243     client
12244     action is set to "RedirectToLoginPage". Possible values include: "AzureActiveDirectory",
12245     "Facebook", "Google", "MicrosoftAccount", "Twitter", "Github".
12246    :type default_provider: str or ~azure.mgmt.web.v2020_09_01.models.BuiltInAuthenticationProvider
12247    :param token_refresh_extension_hours: The number of hours after session token expiration that a
12248     session token can be used to
12249     call the token refresh API. The default is 72 hours.
12250    :type token_refresh_extension_hours: float
12251    :param client_id: The Client ID of this relying party application, known as the client_id.
12252     This setting is required for enabling OpenID Connection authentication with Azure Active
12253     Directory or
12254     other 3rd party OpenID Connect providers.
12255     More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html.
12256    :type client_id: str
12257    :param client_secret: The Client Secret of this relying party application (in Azure Active
12258     Directory, this is also referred to as the Key).
12259     This setting is optional. If no client secret is configured, the OpenID Connect implicit auth
12260     flow is used to authenticate end users.
12261     Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
12262     More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html.
12263    :type client_secret: str
12264    :param client_secret_setting_name: The app setting name that contains the client secret of the
12265     relying party application.
12266    :type client_secret_setting_name: str
12267    :param client_secret_certificate_thumbprint: An alternative to the client secret, that is the
12268     thumbprint of a certificate used for signing purposes. This property acts as
12269     a replacement for the Client Secret. It is also optional.
12270    :type client_secret_certificate_thumbprint: str
12271    :param issuer: The OpenID Connect Issuer URI that represents the entity which issues access
12272     tokens for this application.
12273     When using Azure Active Directory, this value is the URI of the directory tenant, e.g.
12274     https://sts.windows.net/{tenant-guid}/.
12275     This URI is a case-sensitive identifier for the token issuer.
12276     More information on OpenID Connect Discovery:
12277     http://openid.net/specs/openid-connect-discovery-1_0.html.
12278    :type issuer: str
12279    :param validate_issuer: Gets a value indicating whether the issuer should be a valid HTTPS url
12280     and be validated as such.
12281    :type validate_issuer: bool
12282    :param allowed_audiences: Allowed audience values to consider when validating JWTs issued by
12283     Azure Active Directory. Note that the :code:`<code>ClientID</code>` value is always considered
12284     an
12285     allowed audience, regardless of this setting.
12286    :type allowed_audiences: list[str]
12287    :param additional_login_params: Login parameters to send to the OpenID Connect authorization
12288     endpoint when
12289     a user logs in. Each parameter must be in the form "key=value".
12290    :type additional_login_params: list[str]
12291    :param aad_claims_authorization: Gets a JSON string containing the Azure AD Acl settings.
12292    :type aad_claims_authorization: str
12293    :param google_client_id: The OpenID Connect Client ID for the Google web application.
12294     This setting is required for enabling Google Sign-In.
12295     Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/.
12296    :type google_client_id: str
12297    :param google_client_secret: The client secret associated with the Google web application.
12298     This setting is required for enabling Google Sign-In.
12299     Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/.
12300    :type google_client_secret: str
12301    :param google_client_secret_setting_name: The app setting name that contains the client secret
12302     associated with
12303     the Google web application.
12304    :type google_client_secret_setting_name: str
12305    :param google_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Google
12306     Sign-In authentication.
12307     This setting is optional. If not specified, "openid", "profile", and "email" are used as
12308     default scopes.
12309     Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/.
12310    :type google_o_auth_scopes: list[str]
12311    :param facebook_app_id: The App ID of the Facebook app used for login.
12312     This setting is required for enabling Facebook Login.
12313     Facebook Login documentation: https://developers.facebook.com/docs/facebook-login.
12314    :type facebook_app_id: str
12315    :param facebook_app_secret: The App Secret of the Facebook app used for Facebook Login.
12316     This setting is required for enabling Facebook Login.
12317     Facebook Login documentation: https://developers.facebook.com/docs/facebook-login.
12318    :type facebook_app_secret: str
12319    :param facebook_app_secret_setting_name: The app setting name that contains the app secret used
12320     for Facebook Login.
12321    :type facebook_app_secret_setting_name: str
12322    :param facebook_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of Facebook
12323     Login authentication.
12324     This setting is optional.
12325     Facebook Login documentation: https://developers.facebook.com/docs/facebook-login.
12326    :type facebook_o_auth_scopes: list[str]
12327    :param git_hub_client_id: The Client Id of the GitHub app used for login.
12328     This setting is required for enabling Github login.
12329    :type git_hub_client_id: str
12330    :param git_hub_client_secret: The Client Secret of the GitHub app used for Github Login.
12331     This setting is required for enabling Github login.
12332    :type git_hub_client_secret: str
12333    :param git_hub_client_secret_setting_name: The app setting name that contains the client secret
12334     of the Github
12335     app used for GitHub Login.
12336    :type git_hub_client_secret_setting_name: str
12337    :param git_hub_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of GitHub
12338     Login authentication.
12339     This setting is optional.
12340    :type git_hub_o_auth_scopes: list[str]
12341    :param twitter_consumer_key: The OAuth 1.0a consumer key of the Twitter application used for
12342     sign-in.
12343     This setting is required for enabling Twitter Sign-In.
12344     Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in.
12345    :type twitter_consumer_key: str
12346    :param twitter_consumer_secret: The OAuth 1.0a consumer secret of the Twitter application used
12347     for sign-in.
12348     This setting is required for enabling Twitter Sign-In.
12349     Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in.
12350    :type twitter_consumer_secret: str
12351    :param twitter_consumer_secret_setting_name: The app setting name that contains the OAuth 1.0a
12352     consumer secret of the Twitter
12353     application used for sign-in.
12354    :type twitter_consumer_secret_setting_name: str
12355    :param microsoft_account_client_id: The OAuth 2.0 client ID that was created for the app used
12356     for authentication.
12357     This setting is required for enabling Microsoft Account authentication.
12358     Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm.
12359    :type microsoft_account_client_id: str
12360    :param microsoft_account_client_secret: The OAuth 2.0 client secret that was created for the
12361     app used for authentication.
12362     This setting is required for enabling Microsoft Account authentication.
12363     Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm.
12364    :type microsoft_account_client_secret: str
12365    :param microsoft_account_client_secret_setting_name: The app setting name containing the OAuth
12366     2.0 client secret that was created for the
12367     app used for authentication.
12368    :type microsoft_account_client_secret_setting_name: str
12369    :param microsoft_account_o_auth_scopes: The OAuth 2.0 scopes that will be requested as part of
12370     Microsoft Account authentication.
12371     This setting is optional. If not specified, "wl.basic" is used as the default scope.
12372     Microsoft Account Scopes and permissions documentation:
12373     https://msdn.microsoft.com/en-us/library/dn631845.aspx.
12374    :type microsoft_account_o_auth_scopes: list[str]
12375    :param is_auth_from_file: "true" if the auth config settings should be read from a file,
12376     "false" otherwise.
12377    :type is_auth_from_file: str
12378    :param auth_file_path: The path of the config file containing auth settings.
12379     If the path is relative, base will the site's root directory.
12380    :type auth_file_path: str
12381    """
12382
12383    _validation = {
12384        'id': {'readonly': True},
12385        'name': {'readonly': True},
12386        'type': {'readonly': True},
12387        'system_data': {'readonly': True},
12388    }
12389
12390    _attribute_map = {
12391        'id': {'key': 'id', 'type': 'str'},
12392        'name': {'key': 'name', 'type': 'str'},
12393        'kind': {'key': 'kind', 'type': 'str'},
12394        'type': {'key': 'type', 'type': 'str'},
12395        'system_data': {'key': 'systemData', 'type': 'SystemData'},
12396        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
12397        'runtime_version': {'key': 'properties.runtimeVersion', 'type': 'str'},
12398        'unauthenticated_client_action': {'key': 'properties.unauthenticatedClientAction', 'type': 'str'},
12399        'token_store_enabled': {'key': 'properties.tokenStoreEnabled', 'type': 'bool'},
12400        'allowed_external_redirect_urls': {'key': 'properties.allowedExternalRedirectUrls', 'type': '[str]'},
12401        'default_provider': {'key': 'properties.defaultProvider', 'type': 'str'},
12402        'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'},
12403        'client_id': {'key': 'properties.clientId', 'type': 'str'},
12404        'client_secret': {'key': 'properties.clientSecret', 'type': 'str'},
12405        'client_secret_setting_name': {'key': 'properties.clientSecretSettingName', 'type': 'str'},
12406        'client_secret_certificate_thumbprint': {'key': 'properties.clientSecretCertificateThumbprint', 'type': 'str'},
12407        'issuer': {'key': 'properties.issuer', 'type': 'str'},
12408        'validate_issuer': {'key': 'properties.validateIssuer', 'type': 'bool'},
12409        'allowed_audiences': {'key': 'properties.allowedAudiences', 'type': '[str]'},
12410        'additional_login_params': {'key': 'properties.additionalLoginParams', 'type': '[str]'},
12411        'aad_claims_authorization': {'key': 'properties.aadClaimsAuthorization', 'type': 'str'},
12412        'google_client_id': {'key': 'properties.googleClientId', 'type': 'str'},
12413        'google_client_secret': {'key': 'properties.googleClientSecret', 'type': 'str'},
12414        'google_client_secret_setting_name': {'key': 'properties.googleClientSecretSettingName', 'type': 'str'},
12415        'google_o_auth_scopes': {'key': 'properties.googleOAuthScopes', 'type': '[str]'},
12416        'facebook_app_id': {'key': 'properties.facebookAppId', 'type': 'str'},
12417        'facebook_app_secret': {'key': 'properties.facebookAppSecret', 'type': 'str'},
12418        'facebook_app_secret_setting_name': {'key': 'properties.facebookAppSecretSettingName', 'type': 'str'},
12419        'facebook_o_auth_scopes': {'key': 'properties.facebookOAuthScopes', 'type': '[str]'},
12420        'git_hub_client_id': {'key': 'properties.gitHubClientId', 'type': 'str'},
12421        'git_hub_client_secret': {'key': 'properties.gitHubClientSecret', 'type': 'str'},
12422        'git_hub_client_secret_setting_name': {'key': 'properties.gitHubClientSecretSettingName', 'type': 'str'},
12423        'git_hub_o_auth_scopes': {'key': 'properties.gitHubOAuthScopes', 'type': '[str]'},
12424        'twitter_consumer_key': {'key': 'properties.twitterConsumerKey', 'type': 'str'},
12425        'twitter_consumer_secret': {'key': 'properties.twitterConsumerSecret', 'type': 'str'},
12426        'twitter_consumer_secret_setting_name': {'key': 'properties.twitterConsumerSecretSettingName', 'type': 'str'},
12427        'microsoft_account_client_id': {'key': 'properties.microsoftAccountClientId', 'type': 'str'},
12428        'microsoft_account_client_secret': {'key': 'properties.microsoftAccountClientSecret', 'type': 'str'},
12429        'microsoft_account_client_secret_setting_name': {'key': 'properties.microsoftAccountClientSecretSettingName', 'type': 'str'},
12430        'microsoft_account_o_auth_scopes': {'key': 'properties.microsoftAccountOAuthScopes', 'type': '[str]'},
12431        'is_auth_from_file': {'key': 'properties.isAuthFromFile', 'type': 'str'},
12432        'auth_file_path': {'key': 'properties.authFilePath', 'type': 'str'},
12433    }
12434
12435    def __init__(
12436        self,
12437        **kwargs
12438    ):
12439        super(SiteAuthSettings, self).__init__(**kwargs)
12440        self.enabled = kwargs.get('enabled', None)
12441        self.runtime_version = kwargs.get('runtime_version', None)
12442        self.unauthenticated_client_action = kwargs.get('unauthenticated_client_action', None)
12443        self.token_store_enabled = kwargs.get('token_store_enabled', None)
12444        self.allowed_external_redirect_urls = kwargs.get('allowed_external_redirect_urls', None)
12445        self.default_provider = kwargs.get('default_provider', None)
12446        self.token_refresh_extension_hours = kwargs.get('token_refresh_extension_hours', None)
12447        self.client_id = kwargs.get('client_id', None)
12448        self.client_secret = kwargs.get('client_secret', None)
12449        self.client_secret_setting_name = kwargs.get('client_secret_setting_name', None)
12450        self.client_secret_certificate_thumbprint = kwargs.get('client_secret_certificate_thumbprint', None)
12451        self.issuer = kwargs.get('issuer', None)
12452        self.validate_issuer = kwargs.get('validate_issuer', None)
12453        self.allowed_audiences = kwargs.get('allowed_audiences', None)
12454        self.additional_login_params = kwargs.get('additional_login_params', None)
12455        self.aad_claims_authorization = kwargs.get('aad_claims_authorization', None)
12456        self.google_client_id = kwargs.get('google_client_id', None)
12457        self.google_client_secret = kwargs.get('google_client_secret', None)
12458        self.google_client_secret_setting_name = kwargs.get('google_client_secret_setting_name', None)
12459        self.google_o_auth_scopes = kwargs.get('google_o_auth_scopes', None)
12460        self.facebook_app_id = kwargs.get('facebook_app_id', None)
12461        self.facebook_app_secret = kwargs.get('facebook_app_secret', None)
12462        self.facebook_app_secret_setting_name = kwargs.get('facebook_app_secret_setting_name', None)
12463        self.facebook_o_auth_scopes = kwargs.get('facebook_o_auth_scopes', None)
12464        self.git_hub_client_id = kwargs.get('git_hub_client_id', None)
12465        self.git_hub_client_secret = kwargs.get('git_hub_client_secret', None)
12466        self.git_hub_client_secret_setting_name = kwargs.get('git_hub_client_secret_setting_name', None)
12467        self.git_hub_o_auth_scopes = kwargs.get('git_hub_o_auth_scopes', None)
12468        self.twitter_consumer_key = kwargs.get('twitter_consumer_key', None)
12469        self.twitter_consumer_secret = kwargs.get('twitter_consumer_secret', None)
12470        self.twitter_consumer_secret_setting_name = kwargs.get('twitter_consumer_secret_setting_name', None)
12471        self.microsoft_account_client_id = kwargs.get('microsoft_account_client_id', None)
12472        self.microsoft_account_client_secret = kwargs.get('microsoft_account_client_secret', None)
12473        self.microsoft_account_client_secret_setting_name = kwargs.get('microsoft_account_client_secret_setting_name', None)
12474        self.microsoft_account_o_auth_scopes = kwargs.get('microsoft_account_o_auth_scopes', None)
12475        self.is_auth_from_file = kwargs.get('is_auth_from_file', None)
12476        self.auth_file_path = kwargs.get('auth_file_path', None)
12477
12478
12479class SiteAuthSettingsV2(ProxyOnlyResource):
12480    """SiteAuthSettingsV2.
12481
12482    Variables are only populated by the server, and will be ignored when sending a request.
12483
12484    :ivar id: Resource Id.
12485    :vartype id: str
12486    :ivar name: Resource Name.
12487    :vartype name: str
12488    :param kind: Kind of resource.
12489    :type kind: str
12490    :ivar type: Resource type.
12491    :vartype type: str
12492    :ivar system_data: The system metadata relating to this resource.
12493    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
12494    :param platform:
12495    :type platform: ~azure.mgmt.web.v2020_09_01.models.AuthPlatform
12496    :param global_validation:
12497    :type global_validation: ~azure.mgmt.web.v2020_09_01.models.GlobalValidation
12498    :param identity_providers:
12499    :type identity_providers: ~azure.mgmt.web.v2020_09_01.models.IdentityProviders
12500    :param login:
12501    :type login: ~azure.mgmt.web.v2020_09_01.models.Login
12502    :param http_settings:
12503    :type http_settings: ~azure.mgmt.web.v2020_09_01.models.HttpSettings
12504    """
12505
12506    _validation = {
12507        'id': {'readonly': True},
12508        'name': {'readonly': True},
12509        'type': {'readonly': True},
12510        'system_data': {'readonly': True},
12511    }
12512
12513    _attribute_map = {
12514        'id': {'key': 'id', 'type': 'str'},
12515        'name': {'key': 'name', 'type': 'str'},
12516        'kind': {'key': 'kind', 'type': 'str'},
12517        'type': {'key': 'type', 'type': 'str'},
12518        'system_data': {'key': 'systemData', 'type': 'SystemData'},
12519        'platform': {'key': 'properties.platform', 'type': 'AuthPlatform'},
12520        'global_validation': {'key': 'properties.globalValidation', 'type': 'GlobalValidation'},
12521        'identity_providers': {'key': 'properties.identityProviders', 'type': 'IdentityProviders'},
12522        'login': {'key': 'properties.login', 'type': 'Login'},
12523        'http_settings': {'key': 'properties.httpSettings', 'type': 'HttpSettings'},
12524    }
12525
12526    def __init__(
12527        self,
12528        **kwargs
12529    ):
12530        super(SiteAuthSettingsV2, self).__init__(**kwargs)
12531        self.platform = kwargs.get('platform', None)
12532        self.global_validation = kwargs.get('global_validation', None)
12533        self.identity_providers = kwargs.get('identity_providers', None)
12534        self.login = kwargs.get('login', None)
12535        self.http_settings = kwargs.get('http_settings', None)
12536
12537
12538class SiteCloneability(msrest.serialization.Model):
12539    """Represents whether or not an app is cloneable.
12540
12541    :param result: Name of app. Possible values include: "Cloneable", "PartiallyCloneable",
12542     "NotCloneable".
12543    :type result: str or ~azure.mgmt.web.v2020_09_01.models.CloneAbilityResult
12544    :param blocking_features: List of features enabled on app that prevent cloning.
12545    :type blocking_features: list[~azure.mgmt.web.v2020_09_01.models.SiteCloneabilityCriterion]
12546    :param unsupported_features: List of features enabled on app that are non-blocking but cannot
12547     be cloned. The app can still be cloned
12548     but the features in this list will not be set up on cloned app.
12549    :type unsupported_features: list[~azure.mgmt.web.v2020_09_01.models.SiteCloneabilityCriterion]
12550    :param blocking_characteristics: List of blocking application characteristics.
12551    :type blocking_characteristics:
12552     list[~azure.mgmt.web.v2020_09_01.models.SiteCloneabilityCriterion]
12553    """
12554
12555    _attribute_map = {
12556        'result': {'key': 'result', 'type': 'str'},
12557        'blocking_features': {'key': 'blockingFeatures', 'type': '[SiteCloneabilityCriterion]'},
12558        'unsupported_features': {'key': 'unsupportedFeatures', 'type': '[SiteCloneabilityCriterion]'},
12559        'blocking_characteristics': {'key': 'blockingCharacteristics', 'type': '[SiteCloneabilityCriterion]'},
12560    }
12561
12562    def __init__(
12563        self,
12564        **kwargs
12565    ):
12566        super(SiteCloneability, self).__init__(**kwargs)
12567        self.result = kwargs.get('result', None)
12568        self.blocking_features = kwargs.get('blocking_features', None)
12569        self.unsupported_features = kwargs.get('unsupported_features', None)
12570        self.blocking_characteristics = kwargs.get('blocking_characteristics', None)
12571
12572
12573class SiteCloneabilityCriterion(msrest.serialization.Model):
12574    """An app cloneability criterion.
12575
12576    :param name: Name of criterion.
12577    :type name: str
12578    :param description: Description of criterion.
12579    :type description: str
12580    """
12581
12582    _attribute_map = {
12583        'name': {'key': 'name', 'type': 'str'},
12584        'description': {'key': 'description', 'type': 'str'},
12585    }
12586
12587    def __init__(
12588        self,
12589        **kwargs
12590    ):
12591        super(SiteCloneabilityCriterion, self).__init__(**kwargs)
12592        self.name = kwargs.get('name', None)
12593        self.description = kwargs.get('description', None)
12594
12595
12596class SiteConfig(msrest.serialization.Model):
12597    """Configuration of an App Service app.
12598
12599    Variables are only populated by the server, and will be ignored when sending a request.
12600
12601    :param number_of_workers: Number of workers.
12602    :type number_of_workers: int
12603    :param default_documents: Default documents.
12604    :type default_documents: list[str]
12605    :param net_framework_version: .NET Framework version.
12606    :type net_framework_version: str
12607    :param php_version: Version of PHP.
12608    :type php_version: str
12609    :param python_version: Version of Python.
12610    :type python_version: str
12611    :param node_version: Version of Node.js.
12612    :type node_version: str
12613    :param power_shell_version: Version of PowerShell.
12614    :type power_shell_version: str
12615    :param linux_fx_version: Linux App Framework and version.
12616    :type linux_fx_version: str
12617    :param windows_fx_version: Xenon App Framework and version.
12618    :type windows_fx_version: str
12619    :param request_tracing_enabled: :code:`<code>true</code>` if request tracing is enabled;
12620     otherwise, :code:`<code>false</code>`.
12621    :type request_tracing_enabled: bool
12622    :param request_tracing_expiration_time: Request tracing expiration time.
12623    :type request_tracing_expiration_time: ~datetime.datetime
12624    :param remote_debugging_enabled: :code:`<code>true</code>` if remote debugging is enabled;
12625     otherwise, :code:`<code>false</code>`.
12626    :type remote_debugging_enabled: bool
12627    :param remote_debugging_version: Remote debugging version.
12628    :type remote_debugging_version: str
12629    :param http_logging_enabled: :code:`<code>true</code>` if HTTP logging is enabled; otherwise,
12630     :code:`<code>false</code>`.
12631    :type http_logging_enabled: bool
12632    :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull.
12633    :type acr_use_managed_identity_creds: bool
12634    :param acr_user_managed_identity_id: If using user managed identity, the user managed identity
12635     ClientId.
12636    :type acr_user_managed_identity_id: str
12637    :param logs_directory_size_limit: HTTP logs directory size limit.
12638    :type logs_directory_size_limit: int
12639    :param detailed_error_logging_enabled: :code:`<code>true</code>` if detailed error logging is
12640     enabled; otherwise, :code:`<code>false</code>`.
12641    :type detailed_error_logging_enabled: bool
12642    :param publishing_username: Publishing user name.
12643    :type publishing_username: str
12644    :param app_settings: Application settings.
12645    :type app_settings: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
12646    :param connection_strings: Connection strings.
12647    :type connection_strings: list[~azure.mgmt.web.v2020_09_01.models.ConnStringInfo]
12648    :ivar machine_key: Site MachineKey.
12649    :vartype machine_key: ~azure.mgmt.web.v2020_09_01.models.SiteMachineKey
12650    :param handler_mappings: Handler mappings.
12651    :type handler_mappings: list[~azure.mgmt.web.v2020_09_01.models.HandlerMapping]
12652    :param document_root: Document root.
12653    :type document_root: str
12654    :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit",
12655     "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit",
12656     "ExternalHg", "OneDrive", "VSO", "VSTSRM".
12657    :type scm_type: str or ~azure.mgmt.web.v2020_09_01.models.ScmType
12658    :param use32_bit_worker_process: :code:`<code>true</code>` to use 32-bit worker process;
12659     otherwise, :code:`<code>false</code>`.
12660    :type use32_bit_worker_process: bool
12661    :param web_sockets_enabled: :code:`<code>true</code>` if WebSocket is enabled; otherwise,
12662     :code:`<code>false</code>`.
12663    :type web_sockets_enabled: bool
12664    :param always_on: :code:`<code>true</code>` if Always On is enabled; otherwise,
12665     :code:`<code>false</code>`.
12666    :type always_on: bool
12667    :param java_version: Java version.
12668    :type java_version: str
12669    :param java_container: Java container.
12670    :type java_container: str
12671    :param java_container_version: Java container version.
12672    :type java_container_version: str
12673    :param app_command_line: App command line to launch.
12674    :type app_command_line: str
12675    :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated",
12676     "Classic".
12677    :type managed_pipeline_mode: str or ~azure.mgmt.web.v2020_09_01.models.ManagedPipelineMode
12678    :param virtual_applications: Virtual applications.
12679    :type virtual_applications: list[~azure.mgmt.web.v2020_09_01.models.VirtualApplication]
12680    :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin",
12681     "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash".
12682    :type load_balancing: str or ~azure.mgmt.web.v2020_09_01.models.SiteLoadBalancing
12683    :param experiments: This is work around for polymorphic types.
12684    :type experiments: ~azure.mgmt.web.v2020_09_01.models.Experiments
12685    :param limits: Site limits.
12686    :type limits: ~azure.mgmt.web.v2020_09_01.models.SiteLimits
12687    :param auto_heal_enabled: :code:`<code>true</code>` if Auto Heal is enabled; otherwise,
12688     :code:`<code>false</code>`.
12689    :type auto_heal_enabled: bool
12690    :param auto_heal_rules: Auto Heal rules.
12691    :type auto_heal_rules: ~azure.mgmt.web.v2020_09_01.models.AutoHealRules
12692    :param tracing_options: Tracing options.
12693    :type tracing_options: str
12694    :param vnet_name: Virtual Network name.
12695    :type vnet_name: str
12696    :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound
12697     traffic to have Virtual Network Security Groups and User Defined Routes applied.
12698    :type vnet_route_all_enabled: bool
12699    :param vnet_private_ports_count: The number of private ports assigned to this app. These will
12700     be assigned dynamically on runtime.
12701    :type vnet_private_ports_count: int
12702    :param cors: Cross-Origin Resource Sharing (CORS) settings.
12703    :type cors: ~azure.mgmt.web.v2020_09_01.models.CorsSettings
12704    :param push: Push endpoint settings.
12705    :type push: ~azure.mgmt.web.v2020_09_01.models.PushSettings
12706    :param api_definition: Information about the formal API definition for the app.
12707    :type api_definition: ~azure.mgmt.web.v2020_09_01.models.ApiDefinitionInfo
12708    :param api_management_config: Azure API management settings linked to the app.
12709    :type api_management_config: ~azure.mgmt.web.v2020_09_01.models.ApiManagementConfig
12710    :param auto_swap_slot_name: Auto-swap slot name.
12711    :type auto_swap_slot_name: str
12712    :param local_my_sql_enabled: :code:`<code>true</code>` to enable local MySQL; otherwise,
12713     :code:`<code>false</code>`.
12714    :type local_my_sql_enabled: bool
12715    :param managed_service_identity_id: Managed Service Identity Id.
12716    :type managed_service_identity_id: int
12717    :param x_managed_service_identity_id: Explicit Managed Service Identity Id.
12718    :type x_managed_service_identity_id: int
12719    :param ip_security_restrictions: IP security restrictions for main.
12720    :type ip_security_restrictions: list[~azure.mgmt.web.v2020_09_01.models.IpSecurityRestriction]
12721    :param scm_ip_security_restrictions: IP security restrictions for scm.
12722    :type scm_ip_security_restrictions:
12723     list[~azure.mgmt.web.v2020_09_01.models.IpSecurityRestriction]
12724    :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main.
12725    :type scm_ip_security_restrictions_use_main: bool
12726    :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over
12727     http2.0.
12728    :type http20_enabled: bool
12729    :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL
12730     requests. Possible values include: "1.0", "1.1", "1.2".
12731    :type min_tls_version: str or ~azure.mgmt.web.v2020_09_01.models.SupportedTlsVersions
12732    :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required
12733     for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2".
12734    :type scm_min_tls_version: str or ~azure.mgmt.web.v2020_09_01.models.SupportedTlsVersions
12735    :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed",
12736     "FtpsOnly", "Disabled".
12737    :type ftps_state: str or ~azure.mgmt.web.v2020_09_01.models.FtpsState
12738    :param pre_warmed_instance_count: Number of preWarmed instances.
12739     This setting only applies to the Consumption and Elastic Plans.
12740    :type pre_warmed_instance_count: int
12741    :param health_check_path: Health check path.
12742    :type health_check_path: str
12743    """
12744
12745    _validation = {
12746        'machine_key': {'readonly': True},
12747        'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0},
12748    }
12749
12750    _attribute_map = {
12751        'number_of_workers': {'key': 'numberOfWorkers', 'type': 'int'},
12752        'default_documents': {'key': 'defaultDocuments', 'type': '[str]'},
12753        'net_framework_version': {'key': 'netFrameworkVersion', 'type': 'str'},
12754        'php_version': {'key': 'phpVersion', 'type': 'str'},
12755        'python_version': {'key': 'pythonVersion', 'type': 'str'},
12756        'node_version': {'key': 'nodeVersion', 'type': 'str'},
12757        'power_shell_version': {'key': 'powerShellVersion', 'type': 'str'},
12758        'linux_fx_version': {'key': 'linuxFxVersion', 'type': 'str'},
12759        'windows_fx_version': {'key': 'windowsFxVersion', 'type': 'str'},
12760        'request_tracing_enabled': {'key': 'requestTracingEnabled', 'type': 'bool'},
12761        'request_tracing_expiration_time': {'key': 'requestTracingExpirationTime', 'type': 'iso-8601'},
12762        'remote_debugging_enabled': {'key': 'remoteDebuggingEnabled', 'type': 'bool'},
12763        'remote_debugging_version': {'key': 'remoteDebuggingVersion', 'type': 'str'},
12764        'http_logging_enabled': {'key': 'httpLoggingEnabled', 'type': 'bool'},
12765        'acr_use_managed_identity_creds': {'key': 'acrUseManagedIdentityCreds', 'type': 'bool'},
12766        'acr_user_managed_identity_id': {'key': 'acrUserManagedIdentityID', 'type': 'str'},
12767        'logs_directory_size_limit': {'key': 'logsDirectorySizeLimit', 'type': 'int'},
12768        'detailed_error_logging_enabled': {'key': 'detailedErrorLoggingEnabled', 'type': 'bool'},
12769        'publishing_username': {'key': 'publishingUsername', 'type': 'str'},
12770        'app_settings': {'key': 'appSettings', 'type': '[NameValuePair]'},
12771        'connection_strings': {'key': 'connectionStrings', 'type': '[ConnStringInfo]'},
12772        'machine_key': {'key': 'machineKey', 'type': 'SiteMachineKey'},
12773        'handler_mappings': {'key': 'handlerMappings', 'type': '[HandlerMapping]'},
12774        'document_root': {'key': 'documentRoot', 'type': 'str'},
12775        'scm_type': {'key': 'scmType', 'type': 'str'},
12776        'use32_bit_worker_process': {'key': 'use32BitWorkerProcess', 'type': 'bool'},
12777        'web_sockets_enabled': {'key': 'webSocketsEnabled', 'type': 'bool'},
12778        'always_on': {'key': 'alwaysOn', 'type': 'bool'},
12779        'java_version': {'key': 'javaVersion', 'type': 'str'},
12780        'java_container': {'key': 'javaContainer', 'type': 'str'},
12781        'java_container_version': {'key': 'javaContainerVersion', 'type': 'str'},
12782        'app_command_line': {'key': 'appCommandLine', 'type': 'str'},
12783        'managed_pipeline_mode': {'key': 'managedPipelineMode', 'type': 'str'},
12784        'virtual_applications': {'key': 'virtualApplications', 'type': '[VirtualApplication]'},
12785        'load_balancing': {'key': 'loadBalancing', 'type': 'str'},
12786        'experiments': {'key': 'experiments', 'type': 'Experiments'},
12787        'limits': {'key': 'limits', 'type': 'SiteLimits'},
12788        'auto_heal_enabled': {'key': 'autoHealEnabled', 'type': 'bool'},
12789        'auto_heal_rules': {'key': 'autoHealRules', 'type': 'AutoHealRules'},
12790        'tracing_options': {'key': 'tracingOptions', 'type': 'str'},
12791        'vnet_name': {'key': 'vnetName', 'type': 'str'},
12792        'vnet_route_all_enabled': {'key': 'vnetRouteAllEnabled', 'type': 'bool'},
12793        'vnet_private_ports_count': {'key': 'vnetPrivatePortsCount', 'type': 'int'},
12794        'cors': {'key': 'cors', 'type': 'CorsSettings'},
12795        'push': {'key': 'push', 'type': 'PushSettings'},
12796        'api_definition': {'key': 'apiDefinition', 'type': 'ApiDefinitionInfo'},
12797        'api_management_config': {'key': 'apiManagementConfig', 'type': 'ApiManagementConfig'},
12798        'auto_swap_slot_name': {'key': 'autoSwapSlotName', 'type': 'str'},
12799        'local_my_sql_enabled': {'key': 'localMySqlEnabled', 'type': 'bool'},
12800        'managed_service_identity_id': {'key': 'managedServiceIdentityId', 'type': 'int'},
12801        'x_managed_service_identity_id': {'key': 'xManagedServiceIdentityId', 'type': 'int'},
12802        'ip_security_restrictions': {'key': 'ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'},
12803        'scm_ip_security_restrictions': {'key': 'scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'},
12804        'scm_ip_security_restrictions_use_main': {'key': 'scmIpSecurityRestrictionsUseMain', 'type': 'bool'},
12805        'http20_enabled': {'key': 'http20Enabled', 'type': 'bool'},
12806        'min_tls_version': {'key': 'minTlsVersion', 'type': 'str'},
12807        'scm_min_tls_version': {'key': 'scmMinTlsVersion', 'type': 'str'},
12808        'ftps_state': {'key': 'ftpsState', 'type': 'str'},
12809        'pre_warmed_instance_count': {'key': 'preWarmedInstanceCount', 'type': 'int'},
12810        'health_check_path': {'key': 'healthCheckPath', 'type': 'str'},
12811    }
12812
12813    def __init__(
12814        self,
12815        **kwargs
12816    ):
12817        super(SiteConfig, self).__init__(**kwargs)
12818        self.number_of_workers = kwargs.get('number_of_workers', None)
12819        self.default_documents = kwargs.get('default_documents', None)
12820        self.net_framework_version = kwargs.get('net_framework_version', "v4.6")
12821        self.php_version = kwargs.get('php_version', None)
12822        self.python_version = kwargs.get('python_version', None)
12823        self.node_version = kwargs.get('node_version', None)
12824        self.power_shell_version = kwargs.get('power_shell_version', None)
12825        self.linux_fx_version = kwargs.get('linux_fx_version', None)
12826        self.windows_fx_version = kwargs.get('windows_fx_version', None)
12827        self.request_tracing_enabled = kwargs.get('request_tracing_enabled', None)
12828        self.request_tracing_expiration_time = kwargs.get('request_tracing_expiration_time', None)
12829        self.remote_debugging_enabled = kwargs.get('remote_debugging_enabled', None)
12830        self.remote_debugging_version = kwargs.get('remote_debugging_version', None)
12831        self.http_logging_enabled = kwargs.get('http_logging_enabled', None)
12832        self.acr_use_managed_identity_creds = kwargs.get('acr_use_managed_identity_creds', None)
12833        self.acr_user_managed_identity_id = kwargs.get('acr_user_managed_identity_id', None)
12834        self.logs_directory_size_limit = kwargs.get('logs_directory_size_limit', None)
12835        self.detailed_error_logging_enabled = kwargs.get('detailed_error_logging_enabled', None)
12836        self.publishing_username = kwargs.get('publishing_username', None)
12837        self.app_settings = kwargs.get('app_settings', None)
12838        self.connection_strings = kwargs.get('connection_strings', None)
12839        self.machine_key = None
12840        self.handler_mappings = kwargs.get('handler_mappings', None)
12841        self.document_root = kwargs.get('document_root', None)
12842        self.scm_type = kwargs.get('scm_type', None)
12843        self.use32_bit_worker_process = kwargs.get('use32_bit_worker_process', None)
12844        self.web_sockets_enabled = kwargs.get('web_sockets_enabled', None)
12845        self.always_on = kwargs.get('always_on', None)
12846        self.java_version = kwargs.get('java_version', None)
12847        self.java_container = kwargs.get('java_container', None)
12848        self.java_container_version = kwargs.get('java_container_version', None)
12849        self.app_command_line = kwargs.get('app_command_line', None)
12850        self.managed_pipeline_mode = kwargs.get('managed_pipeline_mode', None)
12851        self.virtual_applications = kwargs.get('virtual_applications', None)
12852        self.load_balancing = kwargs.get('load_balancing', None)
12853        self.experiments = kwargs.get('experiments', None)
12854        self.limits = kwargs.get('limits', None)
12855        self.auto_heal_enabled = kwargs.get('auto_heal_enabled', None)
12856        self.auto_heal_rules = kwargs.get('auto_heal_rules', None)
12857        self.tracing_options = kwargs.get('tracing_options', None)
12858        self.vnet_name = kwargs.get('vnet_name', None)
12859        self.vnet_route_all_enabled = kwargs.get('vnet_route_all_enabled', None)
12860        self.vnet_private_ports_count = kwargs.get('vnet_private_ports_count', None)
12861        self.cors = kwargs.get('cors', None)
12862        self.push = kwargs.get('push', None)
12863        self.api_definition = kwargs.get('api_definition', None)
12864        self.api_management_config = kwargs.get('api_management_config', None)
12865        self.auto_swap_slot_name = kwargs.get('auto_swap_slot_name', None)
12866        self.local_my_sql_enabled = kwargs.get('local_my_sql_enabled', False)
12867        self.managed_service_identity_id = kwargs.get('managed_service_identity_id', None)
12868        self.x_managed_service_identity_id = kwargs.get('x_managed_service_identity_id', None)
12869        self.ip_security_restrictions = kwargs.get('ip_security_restrictions', None)
12870        self.scm_ip_security_restrictions = kwargs.get('scm_ip_security_restrictions', None)
12871        self.scm_ip_security_restrictions_use_main = kwargs.get('scm_ip_security_restrictions_use_main', None)
12872        self.http20_enabled = kwargs.get('http20_enabled', True)
12873        self.min_tls_version = kwargs.get('min_tls_version', None)
12874        self.scm_min_tls_version = kwargs.get('scm_min_tls_version', None)
12875        self.ftps_state = kwargs.get('ftps_state', None)
12876        self.pre_warmed_instance_count = kwargs.get('pre_warmed_instance_count', None)
12877        self.health_check_path = kwargs.get('health_check_path', None)
12878
12879
12880class SiteConfigResource(ProxyOnlyResource):
12881    """Web app configuration ARM resource.
12882
12883    Variables are only populated by the server, and will be ignored when sending a request.
12884
12885    :ivar id: Resource Id.
12886    :vartype id: str
12887    :ivar name: Resource Name.
12888    :vartype name: str
12889    :param kind: Kind of resource.
12890    :type kind: str
12891    :ivar type: Resource type.
12892    :vartype type: str
12893    :ivar system_data: The system metadata relating to this resource.
12894    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
12895    :param number_of_workers: Number of workers.
12896    :type number_of_workers: int
12897    :param default_documents: Default documents.
12898    :type default_documents: list[str]
12899    :param net_framework_version: .NET Framework version.
12900    :type net_framework_version: str
12901    :param php_version: Version of PHP.
12902    :type php_version: str
12903    :param python_version: Version of Python.
12904    :type python_version: str
12905    :param node_version: Version of Node.js.
12906    :type node_version: str
12907    :param power_shell_version: Version of PowerShell.
12908    :type power_shell_version: str
12909    :param linux_fx_version: Linux App Framework and version.
12910    :type linux_fx_version: str
12911    :param windows_fx_version: Xenon App Framework and version.
12912    :type windows_fx_version: str
12913    :param request_tracing_enabled: :code:`<code>true</code>` if request tracing is enabled;
12914     otherwise, :code:`<code>false</code>`.
12915    :type request_tracing_enabled: bool
12916    :param request_tracing_expiration_time: Request tracing expiration time.
12917    :type request_tracing_expiration_time: ~datetime.datetime
12918    :param remote_debugging_enabled: :code:`<code>true</code>` if remote debugging is enabled;
12919     otherwise, :code:`<code>false</code>`.
12920    :type remote_debugging_enabled: bool
12921    :param remote_debugging_version: Remote debugging version.
12922    :type remote_debugging_version: str
12923    :param http_logging_enabled: :code:`<code>true</code>` if HTTP logging is enabled; otherwise,
12924     :code:`<code>false</code>`.
12925    :type http_logging_enabled: bool
12926    :param acr_use_managed_identity_creds: Flag to use Managed Identity Creds for ACR pull.
12927    :type acr_use_managed_identity_creds: bool
12928    :param acr_user_managed_identity_id: If using user managed identity, the user managed identity
12929     ClientId.
12930    :type acr_user_managed_identity_id: str
12931    :param logs_directory_size_limit: HTTP logs directory size limit.
12932    :type logs_directory_size_limit: int
12933    :param detailed_error_logging_enabled: :code:`<code>true</code>` if detailed error logging is
12934     enabled; otherwise, :code:`<code>false</code>`.
12935    :type detailed_error_logging_enabled: bool
12936    :param publishing_username: Publishing user name.
12937    :type publishing_username: str
12938    :param app_settings: Application settings.
12939    :type app_settings: list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]
12940    :param connection_strings: Connection strings.
12941    :type connection_strings: list[~azure.mgmt.web.v2020_09_01.models.ConnStringInfo]
12942    :ivar machine_key: Site MachineKey.
12943    :vartype machine_key: ~azure.mgmt.web.v2020_09_01.models.SiteMachineKey
12944    :param handler_mappings: Handler mappings.
12945    :type handler_mappings: list[~azure.mgmt.web.v2020_09_01.models.HandlerMapping]
12946    :param document_root: Document root.
12947    :type document_root: str
12948    :param scm_type: SCM type. Possible values include: "None", "Dropbox", "Tfs", "LocalGit",
12949     "GitHub", "CodePlexGit", "CodePlexHg", "BitbucketGit", "BitbucketHg", "ExternalGit",
12950     "ExternalHg", "OneDrive", "VSO", "VSTSRM".
12951    :type scm_type: str or ~azure.mgmt.web.v2020_09_01.models.ScmType
12952    :param use32_bit_worker_process: :code:`<code>true</code>` to use 32-bit worker process;
12953     otherwise, :code:`<code>false</code>`.
12954    :type use32_bit_worker_process: bool
12955    :param web_sockets_enabled: :code:`<code>true</code>` if WebSocket is enabled; otherwise,
12956     :code:`<code>false</code>`.
12957    :type web_sockets_enabled: bool
12958    :param always_on: :code:`<code>true</code>` if Always On is enabled; otherwise,
12959     :code:`<code>false</code>`.
12960    :type always_on: bool
12961    :param java_version: Java version.
12962    :type java_version: str
12963    :param java_container: Java container.
12964    :type java_container: str
12965    :param java_container_version: Java container version.
12966    :type java_container_version: str
12967    :param app_command_line: App command line to launch.
12968    :type app_command_line: str
12969    :param managed_pipeline_mode: Managed pipeline mode. Possible values include: "Integrated",
12970     "Classic".
12971    :type managed_pipeline_mode: str or ~azure.mgmt.web.v2020_09_01.models.ManagedPipelineMode
12972    :param virtual_applications: Virtual applications.
12973    :type virtual_applications: list[~azure.mgmt.web.v2020_09_01.models.VirtualApplication]
12974    :param load_balancing: Site load balancing. Possible values include: "WeightedRoundRobin",
12975     "LeastRequests", "LeastResponseTime", "WeightedTotalTraffic", "RequestHash".
12976    :type load_balancing: str or ~azure.mgmt.web.v2020_09_01.models.SiteLoadBalancing
12977    :param experiments: This is work around for polymorphic types.
12978    :type experiments: ~azure.mgmt.web.v2020_09_01.models.Experiments
12979    :param limits: Site limits.
12980    :type limits: ~azure.mgmt.web.v2020_09_01.models.SiteLimits
12981    :param auto_heal_enabled: :code:`<code>true</code>` if Auto Heal is enabled; otherwise,
12982     :code:`<code>false</code>`.
12983    :type auto_heal_enabled: bool
12984    :param auto_heal_rules: Auto Heal rules.
12985    :type auto_heal_rules: ~azure.mgmt.web.v2020_09_01.models.AutoHealRules
12986    :param tracing_options: Tracing options.
12987    :type tracing_options: str
12988    :param vnet_name: Virtual Network name.
12989    :type vnet_name: str
12990    :param vnet_route_all_enabled: Virtual Network Route All enabled. This causes all outbound
12991     traffic to have Virtual Network Security Groups and User Defined Routes applied.
12992    :type vnet_route_all_enabled: bool
12993    :param vnet_private_ports_count: The number of private ports assigned to this app. These will
12994     be assigned dynamically on runtime.
12995    :type vnet_private_ports_count: int
12996    :param cors: Cross-Origin Resource Sharing (CORS) settings.
12997    :type cors: ~azure.mgmt.web.v2020_09_01.models.CorsSettings
12998    :param push: Push endpoint settings.
12999    :type push: ~azure.mgmt.web.v2020_09_01.models.PushSettings
13000    :param api_definition: Information about the formal API definition for the app.
13001    :type api_definition: ~azure.mgmt.web.v2020_09_01.models.ApiDefinitionInfo
13002    :param api_management_config: Azure API management settings linked to the app.
13003    :type api_management_config: ~azure.mgmt.web.v2020_09_01.models.ApiManagementConfig
13004    :param auto_swap_slot_name: Auto-swap slot name.
13005    :type auto_swap_slot_name: str
13006    :param local_my_sql_enabled: :code:`<code>true</code>` to enable local MySQL; otherwise,
13007     :code:`<code>false</code>`.
13008    :type local_my_sql_enabled: bool
13009    :param managed_service_identity_id: Managed Service Identity Id.
13010    :type managed_service_identity_id: int
13011    :param x_managed_service_identity_id: Explicit Managed Service Identity Id.
13012    :type x_managed_service_identity_id: int
13013    :param ip_security_restrictions: IP security restrictions for main.
13014    :type ip_security_restrictions: list[~azure.mgmt.web.v2020_09_01.models.IpSecurityRestriction]
13015    :param scm_ip_security_restrictions: IP security restrictions for scm.
13016    :type scm_ip_security_restrictions:
13017     list[~azure.mgmt.web.v2020_09_01.models.IpSecurityRestriction]
13018    :param scm_ip_security_restrictions_use_main: IP security restrictions for scm to use main.
13019    :type scm_ip_security_restrictions_use_main: bool
13020    :param http20_enabled: Http20Enabled: configures a web site to allow clients to connect over
13021     http2.0.
13022    :type http20_enabled: bool
13023    :param min_tls_version: MinTlsVersion: configures the minimum version of TLS required for SSL
13024     requests. Possible values include: "1.0", "1.1", "1.2".
13025    :type min_tls_version: str or ~azure.mgmt.web.v2020_09_01.models.SupportedTlsVersions
13026    :param scm_min_tls_version: ScmMinTlsVersion: configures the minimum version of TLS required
13027     for SSL requests for SCM site. Possible values include: "1.0", "1.1", "1.2".
13028    :type scm_min_tls_version: str or ~azure.mgmt.web.v2020_09_01.models.SupportedTlsVersions
13029    :param ftps_state: State of FTP / FTPS service. Possible values include: "AllAllowed",
13030     "FtpsOnly", "Disabled".
13031    :type ftps_state: str or ~azure.mgmt.web.v2020_09_01.models.FtpsState
13032    :param pre_warmed_instance_count: Number of preWarmed instances.
13033     This setting only applies to the Consumption and Elastic Plans.
13034    :type pre_warmed_instance_count: int
13035    :param health_check_path: Health check path.
13036    :type health_check_path: str
13037    """
13038
13039    _validation = {
13040        'id': {'readonly': True},
13041        'name': {'readonly': True},
13042        'type': {'readonly': True},
13043        'system_data': {'readonly': True},
13044        'machine_key': {'readonly': True},
13045        'pre_warmed_instance_count': {'maximum': 10, 'minimum': 0},
13046    }
13047
13048    _attribute_map = {
13049        'id': {'key': 'id', 'type': 'str'},
13050        'name': {'key': 'name', 'type': 'str'},
13051        'kind': {'key': 'kind', 'type': 'str'},
13052        'type': {'key': 'type', 'type': 'str'},
13053        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13054        'number_of_workers': {'key': 'properties.numberOfWorkers', 'type': 'int'},
13055        'default_documents': {'key': 'properties.defaultDocuments', 'type': '[str]'},
13056        'net_framework_version': {'key': 'properties.netFrameworkVersion', 'type': 'str'},
13057        'php_version': {'key': 'properties.phpVersion', 'type': 'str'},
13058        'python_version': {'key': 'properties.pythonVersion', 'type': 'str'},
13059        'node_version': {'key': 'properties.nodeVersion', 'type': 'str'},
13060        'power_shell_version': {'key': 'properties.powerShellVersion', 'type': 'str'},
13061        'linux_fx_version': {'key': 'properties.linuxFxVersion', 'type': 'str'},
13062        'windows_fx_version': {'key': 'properties.windowsFxVersion', 'type': 'str'},
13063        'request_tracing_enabled': {'key': 'properties.requestTracingEnabled', 'type': 'bool'},
13064        'request_tracing_expiration_time': {'key': 'properties.requestTracingExpirationTime', 'type': 'iso-8601'},
13065        'remote_debugging_enabled': {'key': 'properties.remoteDebuggingEnabled', 'type': 'bool'},
13066        'remote_debugging_version': {'key': 'properties.remoteDebuggingVersion', 'type': 'str'},
13067        'http_logging_enabled': {'key': 'properties.httpLoggingEnabled', 'type': 'bool'},
13068        'acr_use_managed_identity_creds': {'key': 'properties.acrUseManagedIdentityCreds', 'type': 'bool'},
13069        'acr_user_managed_identity_id': {'key': 'properties.acrUserManagedIdentityID', 'type': 'str'},
13070        'logs_directory_size_limit': {'key': 'properties.logsDirectorySizeLimit', 'type': 'int'},
13071        'detailed_error_logging_enabled': {'key': 'properties.detailedErrorLoggingEnabled', 'type': 'bool'},
13072        'publishing_username': {'key': 'properties.publishingUsername', 'type': 'str'},
13073        'app_settings': {'key': 'properties.appSettings', 'type': '[NameValuePair]'},
13074        'connection_strings': {'key': 'properties.connectionStrings', 'type': '[ConnStringInfo]'},
13075        'machine_key': {'key': 'properties.machineKey', 'type': 'SiteMachineKey'},
13076        'handler_mappings': {'key': 'properties.handlerMappings', 'type': '[HandlerMapping]'},
13077        'document_root': {'key': 'properties.documentRoot', 'type': 'str'},
13078        'scm_type': {'key': 'properties.scmType', 'type': 'str'},
13079        'use32_bit_worker_process': {'key': 'properties.use32BitWorkerProcess', 'type': 'bool'},
13080        'web_sockets_enabled': {'key': 'properties.webSocketsEnabled', 'type': 'bool'},
13081        'always_on': {'key': 'properties.alwaysOn', 'type': 'bool'},
13082        'java_version': {'key': 'properties.javaVersion', 'type': 'str'},
13083        'java_container': {'key': 'properties.javaContainer', 'type': 'str'},
13084        'java_container_version': {'key': 'properties.javaContainerVersion', 'type': 'str'},
13085        'app_command_line': {'key': 'properties.appCommandLine', 'type': 'str'},
13086        'managed_pipeline_mode': {'key': 'properties.managedPipelineMode', 'type': 'str'},
13087        'virtual_applications': {'key': 'properties.virtualApplications', 'type': '[VirtualApplication]'},
13088        'load_balancing': {'key': 'properties.loadBalancing', 'type': 'str'},
13089        'experiments': {'key': 'properties.experiments', 'type': 'Experiments'},
13090        'limits': {'key': 'properties.limits', 'type': 'SiteLimits'},
13091        'auto_heal_enabled': {'key': 'properties.autoHealEnabled', 'type': 'bool'},
13092        'auto_heal_rules': {'key': 'properties.autoHealRules', 'type': 'AutoHealRules'},
13093        'tracing_options': {'key': 'properties.tracingOptions', 'type': 'str'},
13094        'vnet_name': {'key': 'properties.vnetName', 'type': 'str'},
13095        'vnet_route_all_enabled': {'key': 'properties.vnetRouteAllEnabled', 'type': 'bool'},
13096        'vnet_private_ports_count': {'key': 'properties.vnetPrivatePortsCount', 'type': 'int'},
13097        'cors': {'key': 'properties.cors', 'type': 'CorsSettings'},
13098        'push': {'key': 'properties.push', 'type': 'PushSettings'},
13099        'api_definition': {'key': 'properties.apiDefinition', 'type': 'ApiDefinitionInfo'},
13100        'api_management_config': {'key': 'properties.apiManagementConfig', 'type': 'ApiManagementConfig'},
13101        'auto_swap_slot_name': {'key': 'properties.autoSwapSlotName', 'type': 'str'},
13102        'local_my_sql_enabled': {'key': 'properties.localMySqlEnabled', 'type': 'bool'},
13103        'managed_service_identity_id': {'key': 'properties.managedServiceIdentityId', 'type': 'int'},
13104        'x_managed_service_identity_id': {'key': 'properties.xManagedServiceIdentityId', 'type': 'int'},
13105        'ip_security_restrictions': {'key': 'properties.ipSecurityRestrictions', 'type': '[IpSecurityRestriction]'},
13106        'scm_ip_security_restrictions': {'key': 'properties.scmIpSecurityRestrictions', 'type': '[IpSecurityRestriction]'},
13107        'scm_ip_security_restrictions_use_main': {'key': 'properties.scmIpSecurityRestrictionsUseMain', 'type': 'bool'},
13108        'http20_enabled': {'key': 'properties.http20Enabled', 'type': 'bool'},
13109        'min_tls_version': {'key': 'properties.minTlsVersion', 'type': 'str'},
13110        'scm_min_tls_version': {'key': 'properties.scmMinTlsVersion', 'type': 'str'},
13111        'ftps_state': {'key': 'properties.ftpsState', 'type': 'str'},
13112        'pre_warmed_instance_count': {'key': 'properties.preWarmedInstanceCount', 'type': 'int'},
13113        'health_check_path': {'key': 'properties.healthCheckPath', 'type': 'str'},
13114    }
13115
13116    def __init__(
13117        self,
13118        **kwargs
13119    ):
13120        super(SiteConfigResource, self).__init__(**kwargs)
13121        self.number_of_workers = kwargs.get('number_of_workers', None)
13122        self.default_documents = kwargs.get('default_documents', None)
13123        self.net_framework_version = kwargs.get('net_framework_version', "v4.6")
13124        self.php_version = kwargs.get('php_version', None)
13125        self.python_version = kwargs.get('python_version', None)
13126        self.node_version = kwargs.get('node_version', None)
13127        self.power_shell_version = kwargs.get('power_shell_version', None)
13128        self.linux_fx_version = kwargs.get('linux_fx_version', None)
13129        self.windows_fx_version = kwargs.get('windows_fx_version', None)
13130        self.request_tracing_enabled = kwargs.get('request_tracing_enabled', None)
13131        self.request_tracing_expiration_time = kwargs.get('request_tracing_expiration_time', None)
13132        self.remote_debugging_enabled = kwargs.get('remote_debugging_enabled', None)
13133        self.remote_debugging_version = kwargs.get('remote_debugging_version', None)
13134        self.http_logging_enabled = kwargs.get('http_logging_enabled', None)
13135        self.acr_use_managed_identity_creds = kwargs.get('acr_use_managed_identity_creds', None)
13136        self.acr_user_managed_identity_id = kwargs.get('acr_user_managed_identity_id', None)
13137        self.logs_directory_size_limit = kwargs.get('logs_directory_size_limit', None)
13138        self.detailed_error_logging_enabled = kwargs.get('detailed_error_logging_enabled', None)
13139        self.publishing_username = kwargs.get('publishing_username', None)
13140        self.app_settings = kwargs.get('app_settings', None)
13141        self.connection_strings = kwargs.get('connection_strings', None)
13142        self.machine_key = None
13143        self.handler_mappings = kwargs.get('handler_mappings', None)
13144        self.document_root = kwargs.get('document_root', None)
13145        self.scm_type = kwargs.get('scm_type', None)
13146        self.use32_bit_worker_process = kwargs.get('use32_bit_worker_process', None)
13147        self.web_sockets_enabled = kwargs.get('web_sockets_enabled', None)
13148        self.always_on = kwargs.get('always_on', None)
13149        self.java_version = kwargs.get('java_version', None)
13150        self.java_container = kwargs.get('java_container', None)
13151        self.java_container_version = kwargs.get('java_container_version', None)
13152        self.app_command_line = kwargs.get('app_command_line', None)
13153        self.managed_pipeline_mode = kwargs.get('managed_pipeline_mode', None)
13154        self.virtual_applications = kwargs.get('virtual_applications', None)
13155        self.load_balancing = kwargs.get('load_balancing', None)
13156        self.experiments = kwargs.get('experiments', None)
13157        self.limits = kwargs.get('limits', None)
13158        self.auto_heal_enabled = kwargs.get('auto_heal_enabled', None)
13159        self.auto_heal_rules = kwargs.get('auto_heal_rules', None)
13160        self.tracing_options = kwargs.get('tracing_options', None)
13161        self.vnet_name = kwargs.get('vnet_name', None)
13162        self.vnet_route_all_enabled = kwargs.get('vnet_route_all_enabled', None)
13163        self.vnet_private_ports_count = kwargs.get('vnet_private_ports_count', None)
13164        self.cors = kwargs.get('cors', None)
13165        self.push = kwargs.get('push', None)
13166        self.api_definition = kwargs.get('api_definition', None)
13167        self.api_management_config = kwargs.get('api_management_config', None)
13168        self.auto_swap_slot_name = kwargs.get('auto_swap_slot_name', None)
13169        self.local_my_sql_enabled = kwargs.get('local_my_sql_enabled', False)
13170        self.managed_service_identity_id = kwargs.get('managed_service_identity_id', None)
13171        self.x_managed_service_identity_id = kwargs.get('x_managed_service_identity_id', None)
13172        self.ip_security_restrictions = kwargs.get('ip_security_restrictions', None)
13173        self.scm_ip_security_restrictions = kwargs.get('scm_ip_security_restrictions', None)
13174        self.scm_ip_security_restrictions_use_main = kwargs.get('scm_ip_security_restrictions_use_main', None)
13175        self.http20_enabled = kwargs.get('http20_enabled', True)
13176        self.min_tls_version = kwargs.get('min_tls_version', None)
13177        self.scm_min_tls_version = kwargs.get('scm_min_tls_version', None)
13178        self.ftps_state = kwargs.get('ftps_state', None)
13179        self.pre_warmed_instance_count = kwargs.get('pre_warmed_instance_count', None)
13180        self.health_check_path = kwargs.get('health_check_path', None)
13181
13182
13183class SiteConfigResourceCollection(msrest.serialization.Model):
13184    """Collection of site configurations.
13185
13186    Variables are only populated by the server, and will be ignored when sending a request.
13187
13188    All required parameters must be populated in order to send to Azure.
13189
13190    :param value: Required. Collection of resources.
13191    :type value: list[~azure.mgmt.web.v2020_09_01.models.SiteConfigResource]
13192    :ivar next_link: Link to next page of resources.
13193    :vartype next_link: str
13194    """
13195
13196    _validation = {
13197        'value': {'required': True},
13198        'next_link': {'readonly': True},
13199    }
13200
13201    _attribute_map = {
13202        'value': {'key': 'value', 'type': '[SiteConfigResource]'},
13203        'next_link': {'key': 'nextLink', 'type': 'str'},
13204    }
13205
13206    def __init__(
13207        self,
13208        **kwargs
13209    ):
13210        super(SiteConfigResourceCollection, self).__init__(**kwargs)
13211        self.value = kwargs['value']
13212        self.next_link = None
13213
13214
13215class SiteConfigurationSnapshotInfo(ProxyOnlyResource):
13216    """A snapshot of a web app configuration.
13217
13218    Variables are only populated by the server, and will be ignored when sending a request.
13219
13220    :ivar id: Resource Id.
13221    :vartype id: str
13222    :ivar name: Resource Name.
13223    :vartype name: str
13224    :param kind: Kind of resource.
13225    :type kind: str
13226    :ivar type: Resource type.
13227    :vartype type: str
13228    :ivar system_data: The system metadata relating to this resource.
13229    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13230    :ivar time: The time the snapshot was taken.
13231    :vartype time: ~datetime.datetime
13232    :ivar snapshot_id: The id of the snapshot.
13233    :vartype snapshot_id: int
13234    """
13235
13236    _validation = {
13237        'id': {'readonly': True},
13238        'name': {'readonly': True},
13239        'type': {'readonly': True},
13240        'system_data': {'readonly': True},
13241        'time': {'readonly': True},
13242        'snapshot_id': {'readonly': True},
13243    }
13244
13245    _attribute_map = {
13246        'id': {'key': 'id', 'type': 'str'},
13247        'name': {'key': 'name', 'type': 'str'},
13248        'kind': {'key': 'kind', 'type': 'str'},
13249        'type': {'key': 'type', 'type': 'str'},
13250        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13251        'time': {'key': 'properties.time', 'type': 'iso-8601'},
13252        'snapshot_id': {'key': 'properties.snapshotId', 'type': 'int'},
13253    }
13254
13255    def __init__(
13256        self,
13257        **kwargs
13258    ):
13259        super(SiteConfigurationSnapshotInfo, self).__init__(**kwargs)
13260        self.time = None
13261        self.snapshot_id = None
13262
13263
13264class SiteConfigurationSnapshotInfoCollection(msrest.serialization.Model):
13265    """Collection of metadata for the app configuration snapshots that can be restored.
13266
13267    Variables are only populated by the server, and will be ignored when sending a request.
13268
13269    All required parameters must be populated in order to send to Azure.
13270
13271    :param value: Required. Collection of resources.
13272    :type value: list[~azure.mgmt.web.v2020_09_01.models.SiteConfigurationSnapshotInfo]
13273    :ivar next_link: Link to next page of resources.
13274    :vartype next_link: str
13275    """
13276
13277    _validation = {
13278        'value': {'required': True},
13279        'next_link': {'readonly': True},
13280    }
13281
13282    _attribute_map = {
13283        'value': {'key': 'value', 'type': '[SiteConfigurationSnapshotInfo]'},
13284        'next_link': {'key': 'nextLink', 'type': 'str'},
13285    }
13286
13287    def __init__(
13288        self,
13289        **kwargs
13290    ):
13291        super(SiteConfigurationSnapshotInfoCollection, self).__init__(**kwargs)
13292        self.value = kwargs['value']
13293        self.next_link = None
13294
13295
13296class SiteExtensionInfo(ProxyOnlyResource):
13297    """Site Extension Information.
13298
13299    Variables are only populated by the server, and will be ignored when sending a request.
13300
13301    :ivar id: Resource Id.
13302    :vartype id: str
13303    :ivar name: Resource Name.
13304    :vartype name: str
13305    :param kind: Kind of resource.
13306    :type kind: str
13307    :ivar type: Resource type.
13308    :vartype type: str
13309    :ivar system_data: The system metadata relating to this resource.
13310    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13311    :param extension_id: Site extension ID.
13312    :type extension_id: str
13313    :param title:
13314    :type title: str
13315    :param extension_type: Site extension type. Possible values include: "Gallery", "WebRoot".
13316    :type extension_type: str or ~azure.mgmt.web.v2020_09_01.models.SiteExtensionType
13317    :param summary: Summary description.
13318    :type summary: str
13319    :param description: Detailed description.
13320    :type description: str
13321    :param version: Version information.
13322    :type version: str
13323    :param extension_url: Extension URL.
13324    :type extension_url: str
13325    :param project_url: Project URL.
13326    :type project_url: str
13327    :param icon_url: Icon URL.
13328    :type icon_url: str
13329    :param license_url: License URL.
13330    :type license_url: str
13331    :param feed_url: Feed URL.
13332    :type feed_url: str
13333    :param authors: List of authors.
13334    :type authors: list[str]
13335    :param installer_command_line_params: Installer command line parameters.
13336    :type installer_command_line_params: str
13337    :param published_date_time: Published timestamp.
13338    :type published_date_time: ~datetime.datetime
13339    :param download_count: Count of downloads.
13340    :type download_count: int
13341    :param local_is_latest_version: :code:`<code>true</code>` if the local version is the latest
13342     version; :code:`<code>false</code>` otherwise.
13343    :type local_is_latest_version: bool
13344    :param local_path: Local path.
13345    :type local_path: str
13346    :param installed_date_time: Installed timestamp.
13347    :type installed_date_time: ~datetime.datetime
13348    :param provisioning_state: Provisioning state.
13349    :type provisioning_state: str
13350    :param comment: Site Extension comment.
13351    :type comment: str
13352    """
13353
13354    _validation = {
13355        'id': {'readonly': True},
13356        'name': {'readonly': True},
13357        'type': {'readonly': True},
13358        'system_data': {'readonly': True},
13359    }
13360
13361    _attribute_map = {
13362        'id': {'key': 'id', 'type': 'str'},
13363        'name': {'key': 'name', 'type': 'str'},
13364        'kind': {'key': 'kind', 'type': 'str'},
13365        'type': {'key': 'type', 'type': 'str'},
13366        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13367        'extension_id': {'key': 'properties.extension_id', 'type': 'str'},
13368        'title': {'key': 'properties.title', 'type': 'str'},
13369        'extension_type': {'key': 'properties.extension_type', 'type': 'str'},
13370        'summary': {'key': 'properties.summary', 'type': 'str'},
13371        'description': {'key': 'properties.description', 'type': 'str'},
13372        'version': {'key': 'properties.version', 'type': 'str'},
13373        'extension_url': {'key': 'properties.extension_url', 'type': 'str'},
13374        'project_url': {'key': 'properties.project_url', 'type': 'str'},
13375        'icon_url': {'key': 'properties.icon_url', 'type': 'str'},
13376        'license_url': {'key': 'properties.license_url', 'type': 'str'},
13377        'feed_url': {'key': 'properties.feed_url', 'type': 'str'},
13378        'authors': {'key': 'properties.authors', 'type': '[str]'},
13379        'installer_command_line_params': {'key': 'properties.installer_command_line_params', 'type': 'str'},
13380        'published_date_time': {'key': 'properties.published_date_time', 'type': 'iso-8601'},
13381        'download_count': {'key': 'properties.download_count', 'type': 'int'},
13382        'local_is_latest_version': {'key': 'properties.local_is_latest_version', 'type': 'bool'},
13383        'local_path': {'key': 'properties.local_path', 'type': 'str'},
13384        'installed_date_time': {'key': 'properties.installed_date_time', 'type': 'iso-8601'},
13385        'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'},
13386        'comment': {'key': 'properties.comment', 'type': 'str'},
13387    }
13388
13389    def __init__(
13390        self,
13391        **kwargs
13392    ):
13393        super(SiteExtensionInfo, self).__init__(**kwargs)
13394        self.extension_id = kwargs.get('extension_id', None)
13395        self.title = kwargs.get('title', None)
13396        self.extension_type = kwargs.get('extension_type', None)
13397        self.summary = kwargs.get('summary', None)
13398        self.description = kwargs.get('description', None)
13399        self.version = kwargs.get('version', None)
13400        self.extension_url = kwargs.get('extension_url', None)
13401        self.project_url = kwargs.get('project_url', None)
13402        self.icon_url = kwargs.get('icon_url', None)
13403        self.license_url = kwargs.get('license_url', None)
13404        self.feed_url = kwargs.get('feed_url', None)
13405        self.authors = kwargs.get('authors', None)
13406        self.installer_command_line_params = kwargs.get('installer_command_line_params', None)
13407        self.published_date_time = kwargs.get('published_date_time', None)
13408        self.download_count = kwargs.get('download_count', None)
13409        self.local_is_latest_version = kwargs.get('local_is_latest_version', None)
13410        self.local_path = kwargs.get('local_path', None)
13411        self.installed_date_time = kwargs.get('installed_date_time', None)
13412        self.provisioning_state = kwargs.get('provisioning_state', None)
13413        self.comment = kwargs.get('comment', None)
13414
13415
13416class SiteExtensionInfoCollection(msrest.serialization.Model):
13417    """Collection of Kudu site extension information elements.
13418
13419    Variables are only populated by the server, and will be ignored when sending a request.
13420
13421    All required parameters must be populated in order to send to Azure.
13422
13423    :param value: Required. Collection of resources.
13424    :type value: list[~azure.mgmt.web.v2020_09_01.models.SiteExtensionInfo]
13425    :ivar next_link: Link to next page of resources.
13426    :vartype next_link: str
13427    """
13428
13429    _validation = {
13430        'value': {'required': True},
13431        'next_link': {'readonly': True},
13432    }
13433
13434    _attribute_map = {
13435        'value': {'key': 'value', 'type': '[SiteExtensionInfo]'},
13436        'next_link': {'key': 'nextLink', 'type': 'str'},
13437    }
13438
13439    def __init__(
13440        self,
13441        **kwargs
13442    ):
13443        super(SiteExtensionInfoCollection, self).__init__(**kwargs)
13444        self.value = kwargs['value']
13445        self.next_link = None
13446
13447
13448class SiteLimits(msrest.serialization.Model):
13449    """Metric limits set on an app.
13450
13451    :param max_percentage_cpu: Maximum allowed CPU usage percentage.
13452    :type max_percentage_cpu: float
13453    :param max_memory_in_mb: Maximum allowed memory usage in MB.
13454    :type max_memory_in_mb: long
13455    :param max_disk_size_in_mb: Maximum allowed disk size usage in MB.
13456    :type max_disk_size_in_mb: long
13457    """
13458
13459    _attribute_map = {
13460        'max_percentage_cpu': {'key': 'maxPercentageCpu', 'type': 'float'},
13461        'max_memory_in_mb': {'key': 'maxMemoryInMb', 'type': 'long'},
13462        'max_disk_size_in_mb': {'key': 'maxDiskSizeInMb', 'type': 'long'},
13463    }
13464
13465    def __init__(
13466        self,
13467        **kwargs
13468    ):
13469        super(SiteLimits, self).__init__(**kwargs)
13470        self.max_percentage_cpu = kwargs.get('max_percentage_cpu', None)
13471        self.max_memory_in_mb = kwargs.get('max_memory_in_mb', None)
13472        self.max_disk_size_in_mb = kwargs.get('max_disk_size_in_mb', None)
13473
13474
13475class SiteLogsConfig(ProxyOnlyResource):
13476    """Configuration of App Service site logs.
13477
13478    Variables are only populated by the server, and will be ignored when sending a request.
13479
13480    :ivar id: Resource Id.
13481    :vartype id: str
13482    :ivar name: Resource Name.
13483    :vartype name: str
13484    :param kind: Kind of resource.
13485    :type kind: str
13486    :ivar type: Resource type.
13487    :vartype type: str
13488    :ivar system_data: The system metadata relating to this resource.
13489    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13490    :param application_logs: Application logs configuration.
13491    :type application_logs: ~azure.mgmt.web.v2020_09_01.models.ApplicationLogsConfig
13492    :param http_logs: HTTP logs configuration.
13493    :type http_logs: ~azure.mgmt.web.v2020_09_01.models.HttpLogsConfig
13494    :param failed_requests_tracing: Failed requests tracing configuration.
13495    :type failed_requests_tracing: ~azure.mgmt.web.v2020_09_01.models.EnabledConfig
13496    :param detailed_error_messages: Detailed error messages configuration.
13497    :type detailed_error_messages: ~azure.mgmt.web.v2020_09_01.models.EnabledConfig
13498    """
13499
13500    _validation = {
13501        'id': {'readonly': True},
13502        'name': {'readonly': True},
13503        'type': {'readonly': True},
13504        'system_data': {'readonly': True},
13505    }
13506
13507    _attribute_map = {
13508        'id': {'key': 'id', 'type': 'str'},
13509        'name': {'key': 'name', 'type': 'str'},
13510        'kind': {'key': 'kind', 'type': 'str'},
13511        'type': {'key': 'type', 'type': 'str'},
13512        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13513        'application_logs': {'key': 'properties.applicationLogs', 'type': 'ApplicationLogsConfig'},
13514        'http_logs': {'key': 'properties.httpLogs', 'type': 'HttpLogsConfig'},
13515        'failed_requests_tracing': {'key': 'properties.failedRequestsTracing', 'type': 'EnabledConfig'},
13516        'detailed_error_messages': {'key': 'properties.detailedErrorMessages', 'type': 'EnabledConfig'},
13517    }
13518
13519    def __init__(
13520        self,
13521        **kwargs
13522    ):
13523        super(SiteLogsConfig, self).__init__(**kwargs)
13524        self.application_logs = kwargs.get('application_logs', None)
13525        self.http_logs = kwargs.get('http_logs', None)
13526        self.failed_requests_tracing = kwargs.get('failed_requests_tracing', None)
13527        self.detailed_error_messages = kwargs.get('detailed_error_messages', None)
13528
13529
13530class SiteMachineKey(msrest.serialization.Model):
13531    """MachineKey of an app.
13532
13533    :param validation: MachineKey validation.
13534    :type validation: str
13535    :param validation_key: Validation key.
13536    :type validation_key: str
13537    :param decryption: Algorithm used for decryption.
13538    :type decryption: str
13539    :param decryption_key: Decryption key.
13540    :type decryption_key: str
13541    """
13542
13543    _attribute_map = {
13544        'validation': {'key': 'validation', 'type': 'str'},
13545        'validation_key': {'key': 'validationKey', 'type': 'str'},
13546        'decryption': {'key': 'decryption', 'type': 'str'},
13547        'decryption_key': {'key': 'decryptionKey', 'type': 'str'},
13548    }
13549
13550    def __init__(
13551        self,
13552        **kwargs
13553    ):
13554        super(SiteMachineKey, self).__init__(**kwargs)
13555        self.validation = kwargs.get('validation', None)
13556        self.validation_key = kwargs.get('validation_key', None)
13557        self.decryption = kwargs.get('decryption', None)
13558        self.decryption_key = kwargs.get('decryption_key', None)
13559
13560
13561class SitePatchResource(ProxyOnlyResource):
13562    """ARM resource for a site.
13563
13564    Variables are only populated by the server, and will be ignored when sending a request.
13565
13566    :ivar id: Resource Id.
13567    :vartype id: str
13568    :ivar name: Resource Name.
13569    :vartype name: str
13570    :param kind: Kind of resource.
13571    :type kind: str
13572    :ivar type: Resource type.
13573    :vartype type: str
13574    :ivar system_data: The system metadata relating to this resource.
13575    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13576    :param identity: Managed service identity.
13577    :type identity: ~azure.mgmt.web.v2020_09_01.models.ManagedServiceIdentity
13578    :ivar state: Current state of the app.
13579    :vartype state: str
13580    :ivar host_names: Hostnames associated with the app.
13581    :vartype host_names: list[str]
13582    :ivar repository_site_name: Name of the repository site.
13583    :vartype repository_site_name: str
13584    :ivar usage_state: State indicating whether the app has exceeded its quota usage. Read-only.
13585     Possible values include: "Normal", "Exceeded".
13586    :vartype usage_state: str or ~azure.mgmt.web.v2020_09_01.models.UsageState
13587    :param enabled: :code:`<code>true</code>` if the app is enabled; otherwise,
13588     :code:`<code>false</code>`. Setting this value to false disables the app (takes the app
13589     offline).
13590    :type enabled: bool
13591    :ivar enabled_host_names: Enabled hostnames for the app.Hostnames need to be assigned (see
13592     HostNames) AND enabled. Otherwise,
13593     the app is not served on those hostnames.
13594    :vartype enabled_host_names: list[str]
13595    :ivar availability_state: Management information availability state for the app. Possible
13596     values include: "Normal", "Limited", "DisasterRecoveryMode".
13597    :vartype availability_state: str or ~azure.mgmt.web.v2020_09_01.models.SiteAvailabilityState
13598    :param host_name_ssl_states: Hostname SSL states are used to manage the SSL bindings for app's
13599     hostnames.
13600    :type host_name_ssl_states: list[~azure.mgmt.web.v2020_09_01.models.HostNameSslState]
13601    :param server_farm_id: Resource ID of the associated App Service plan, formatted as:
13602     "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
13603    :type server_farm_id: str
13604    :param reserved: :code:`<code>true</code>` if reserved; otherwise, :code:`<code>false</code>`.
13605    :type reserved: bool
13606    :param is_xenon: Obsolete: Hyper-V sandbox.
13607    :type is_xenon: bool
13608    :param hyper_v: Hyper-V sandbox.
13609    :type hyper_v: bool
13610    :ivar last_modified_time_utc: Last time the app was modified, in UTC. Read-only.
13611    :vartype last_modified_time_utc: ~datetime.datetime
13612    :param site_config: Configuration of the app.
13613    :type site_config: ~azure.mgmt.web.v2020_09_01.models.SiteConfig
13614    :ivar traffic_manager_host_names: Azure Traffic Manager hostnames associated with the app.
13615     Read-only.
13616    :vartype traffic_manager_host_names: list[str]
13617    :param scm_site_also_stopped: :code:`<code>true</code>` to stop SCM (KUDU) site when the app is
13618     stopped; otherwise, :code:`<code>false</code>`. The default is :code:`<code>false</code>`.
13619    :type scm_site_also_stopped: bool
13620    :ivar target_swap_slot: Specifies which deployment slot this app will swap into. Read-only.
13621    :vartype target_swap_slot: str
13622    :param hosting_environment_profile: App Service Environment to use for the app.
13623    :type hosting_environment_profile: ~azure.mgmt.web.v2020_09_01.models.HostingEnvironmentProfile
13624    :param client_affinity_enabled: :code:`<code>true</code>` to enable client affinity;
13625     :code:`<code>false</code>` to stop sending session affinity cookies, which route client
13626     requests in the same session to the same instance. Default is :code:`<code>true</code>`.
13627    :type client_affinity_enabled: bool
13628    :param client_cert_enabled: :code:`<code>true</code>` to enable client certificate
13629     authentication (TLS mutual authentication); otherwise, :code:`<code>false</code>`. Default is
13630     :code:`<code>false</code>`.
13631    :type client_cert_enabled: bool
13632    :param client_cert_mode: This composes with ClientCertEnabled setting.
13633
13634
13635     * ClientCertEnabled: false means ClientCert is ignored.
13636     * ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
13637     * ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or
13638     accepted. Possible values include: "Required", "Optional".
13639    :type client_cert_mode: str or ~azure.mgmt.web.v2020_09_01.models.ClientCertMode
13640    :param client_cert_exclusion_paths: client certificate authentication comma-separated exclusion
13641     paths.
13642    :type client_cert_exclusion_paths: str
13643    :param host_names_disabled: :code:`<code>true</code>` to disable the public hostnames of the
13644     app; otherwise, :code:`<code>false</code>`.
13645      If :code:`<code>true</code>`, the app is only accessible via API management process.
13646    :type host_names_disabled: bool
13647    :param custom_domain_verification_id: Unique identifier that verifies the custom domains
13648     assigned to the app. Customer will add this id to a txt record for verification.
13649    :type custom_domain_verification_id: str
13650    :ivar outbound_ip_addresses: List of IP addresses that the app uses for outbound connections
13651     (e.g. database access). Includes VIPs from tenants that site can be hosted with current
13652     settings. Read-only.
13653    :vartype outbound_ip_addresses: str
13654    :ivar possible_outbound_ip_addresses: List of IP addresses that the app uses for outbound
13655     connections (e.g. database access). Includes VIPs from all tenants except dataComponent.
13656     Read-only.
13657    :vartype possible_outbound_ip_addresses: str
13658    :param container_size: Size of the function container.
13659    :type container_size: int
13660    :param daily_memory_time_quota: Maximum allowed daily memory-time quota (applicable on dynamic
13661     apps only).
13662    :type daily_memory_time_quota: int
13663    :ivar suspended_till: App suspended till in case memory-time quota is exceeded.
13664    :vartype suspended_till: ~datetime.datetime
13665    :ivar max_number_of_workers: Maximum number of workers.
13666     This only applies to Functions container.
13667    :vartype max_number_of_workers: int
13668    :param cloning_info: If specified during app creation, the app is cloned from a source app.
13669    :type cloning_info: ~azure.mgmt.web.v2020_09_01.models.CloningInfo
13670    :ivar resource_group: Name of the resource group the app belongs to. Read-only.
13671    :vartype resource_group: str
13672    :ivar is_default_container: :code:`<code>true</code>` if the app is a default container;
13673     otherwise, :code:`<code>false</code>`.
13674    :vartype is_default_container: bool
13675    :ivar default_host_name: Default hostname of the app. Read-only.
13676    :vartype default_host_name: str
13677    :ivar slot_swap_status: Status of the last deployment slot swap operation.
13678    :vartype slot_swap_status: ~azure.mgmt.web.v2020_09_01.models.SlotSwapStatus
13679    :param https_only: HttpsOnly: configures a web site to accept only https requests. Issues
13680     redirect for
13681     http requests.
13682    :type https_only: bool
13683    :param redundancy_mode: Site redundancy mode. Possible values include: "None", "Manual",
13684     "Failover", "ActiveActive", "GeoRedundant".
13685    :type redundancy_mode: str or ~azure.mgmt.web.v2020_09_01.models.RedundancyMode
13686    :ivar in_progress_operation_id: Specifies an operation id if this site has a pending operation.
13687    :vartype in_progress_operation_id: str
13688    """
13689
13690    _validation = {
13691        'id': {'readonly': True},
13692        'name': {'readonly': True},
13693        'type': {'readonly': True},
13694        'system_data': {'readonly': True},
13695        'state': {'readonly': True},
13696        'host_names': {'readonly': True},
13697        'repository_site_name': {'readonly': True},
13698        'usage_state': {'readonly': True},
13699        'enabled_host_names': {'readonly': True},
13700        'availability_state': {'readonly': True},
13701        'last_modified_time_utc': {'readonly': True},
13702        'traffic_manager_host_names': {'readonly': True},
13703        'target_swap_slot': {'readonly': True},
13704        'outbound_ip_addresses': {'readonly': True},
13705        'possible_outbound_ip_addresses': {'readonly': True},
13706        'suspended_till': {'readonly': True},
13707        'max_number_of_workers': {'readonly': True},
13708        'resource_group': {'readonly': True},
13709        'is_default_container': {'readonly': True},
13710        'default_host_name': {'readonly': True},
13711        'slot_swap_status': {'readonly': True},
13712        'in_progress_operation_id': {'readonly': True},
13713    }
13714
13715    _attribute_map = {
13716        'id': {'key': 'id', 'type': 'str'},
13717        'name': {'key': 'name', 'type': 'str'},
13718        'kind': {'key': 'kind', 'type': 'str'},
13719        'type': {'key': 'type', 'type': 'str'},
13720        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13721        'identity': {'key': 'identity', 'type': 'ManagedServiceIdentity'},
13722        'state': {'key': 'properties.state', 'type': 'str'},
13723        'host_names': {'key': 'properties.hostNames', 'type': '[str]'},
13724        'repository_site_name': {'key': 'properties.repositorySiteName', 'type': 'str'},
13725        'usage_state': {'key': 'properties.usageState', 'type': 'str'},
13726        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
13727        'enabled_host_names': {'key': 'properties.enabledHostNames', 'type': '[str]'},
13728        'availability_state': {'key': 'properties.availabilityState', 'type': 'str'},
13729        'host_name_ssl_states': {'key': 'properties.hostNameSslStates', 'type': '[HostNameSslState]'},
13730        'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'},
13731        'reserved': {'key': 'properties.reserved', 'type': 'bool'},
13732        'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'},
13733        'hyper_v': {'key': 'properties.hyperV', 'type': 'bool'},
13734        'last_modified_time_utc': {'key': 'properties.lastModifiedTimeUtc', 'type': 'iso-8601'},
13735        'site_config': {'key': 'properties.siteConfig', 'type': 'SiteConfig'},
13736        'traffic_manager_host_names': {'key': 'properties.trafficManagerHostNames', 'type': '[str]'},
13737        'scm_site_also_stopped': {'key': 'properties.scmSiteAlsoStopped', 'type': 'bool'},
13738        'target_swap_slot': {'key': 'properties.targetSwapSlot', 'type': 'str'},
13739        'hosting_environment_profile': {'key': 'properties.hostingEnvironmentProfile', 'type': 'HostingEnvironmentProfile'},
13740        'client_affinity_enabled': {'key': 'properties.clientAffinityEnabled', 'type': 'bool'},
13741        'client_cert_enabled': {'key': 'properties.clientCertEnabled', 'type': 'bool'},
13742        'client_cert_mode': {'key': 'properties.clientCertMode', 'type': 'str'},
13743        'client_cert_exclusion_paths': {'key': 'properties.clientCertExclusionPaths', 'type': 'str'},
13744        'host_names_disabled': {'key': 'properties.hostNamesDisabled', 'type': 'bool'},
13745        'custom_domain_verification_id': {'key': 'properties.customDomainVerificationId', 'type': 'str'},
13746        'outbound_ip_addresses': {'key': 'properties.outboundIpAddresses', 'type': 'str'},
13747        'possible_outbound_ip_addresses': {'key': 'properties.possibleOutboundIpAddresses', 'type': 'str'},
13748        'container_size': {'key': 'properties.containerSize', 'type': 'int'},
13749        'daily_memory_time_quota': {'key': 'properties.dailyMemoryTimeQuota', 'type': 'int'},
13750        'suspended_till': {'key': 'properties.suspendedTill', 'type': 'iso-8601'},
13751        'max_number_of_workers': {'key': 'properties.maxNumberOfWorkers', 'type': 'int'},
13752        'cloning_info': {'key': 'properties.cloningInfo', 'type': 'CloningInfo'},
13753        'resource_group': {'key': 'properties.resourceGroup', 'type': 'str'},
13754        'is_default_container': {'key': 'properties.isDefaultContainer', 'type': 'bool'},
13755        'default_host_name': {'key': 'properties.defaultHostName', 'type': 'str'},
13756        'slot_swap_status': {'key': 'properties.slotSwapStatus', 'type': 'SlotSwapStatus'},
13757        'https_only': {'key': 'properties.httpsOnly', 'type': 'bool'},
13758        'redundancy_mode': {'key': 'properties.redundancyMode', 'type': 'str'},
13759        'in_progress_operation_id': {'key': 'properties.inProgressOperationId', 'type': 'str'},
13760    }
13761
13762    def __init__(
13763        self,
13764        **kwargs
13765    ):
13766        super(SitePatchResource, self).__init__(**kwargs)
13767        self.identity = kwargs.get('identity', None)
13768        self.state = None
13769        self.host_names = None
13770        self.repository_site_name = None
13771        self.usage_state = None
13772        self.enabled = kwargs.get('enabled', None)
13773        self.enabled_host_names = None
13774        self.availability_state = None
13775        self.host_name_ssl_states = kwargs.get('host_name_ssl_states', None)
13776        self.server_farm_id = kwargs.get('server_farm_id', None)
13777        self.reserved = kwargs.get('reserved', False)
13778        self.is_xenon = kwargs.get('is_xenon', False)
13779        self.hyper_v = kwargs.get('hyper_v', False)
13780        self.last_modified_time_utc = None
13781        self.site_config = kwargs.get('site_config', None)
13782        self.traffic_manager_host_names = None
13783        self.scm_site_also_stopped = kwargs.get('scm_site_also_stopped', False)
13784        self.target_swap_slot = None
13785        self.hosting_environment_profile = kwargs.get('hosting_environment_profile', None)
13786        self.client_affinity_enabled = kwargs.get('client_affinity_enabled', None)
13787        self.client_cert_enabled = kwargs.get('client_cert_enabled', None)
13788        self.client_cert_mode = kwargs.get('client_cert_mode', None)
13789        self.client_cert_exclusion_paths = kwargs.get('client_cert_exclusion_paths', None)
13790        self.host_names_disabled = kwargs.get('host_names_disabled', None)
13791        self.custom_domain_verification_id = kwargs.get('custom_domain_verification_id', None)
13792        self.outbound_ip_addresses = None
13793        self.possible_outbound_ip_addresses = None
13794        self.container_size = kwargs.get('container_size', None)
13795        self.daily_memory_time_quota = kwargs.get('daily_memory_time_quota', None)
13796        self.suspended_till = None
13797        self.max_number_of_workers = None
13798        self.cloning_info = kwargs.get('cloning_info', None)
13799        self.resource_group = None
13800        self.is_default_container = None
13801        self.default_host_name = None
13802        self.slot_swap_status = None
13803        self.https_only = kwargs.get('https_only', None)
13804        self.redundancy_mode = kwargs.get('redundancy_mode', None)
13805        self.in_progress_operation_id = None
13806
13807
13808class SitePhpErrorLogFlag(ProxyOnlyResource):
13809    """Used for getting PHP error logging flag.
13810
13811    Variables are only populated by the server, and will be ignored when sending a request.
13812
13813    :ivar id: Resource Id.
13814    :vartype id: str
13815    :ivar name: Resource Name.
13816    :vartype name: str
13817    :param kind: Kind of resource.
13818    :type kind: str
13819    :ivar type: Resource type.
13820    :vartype type: str
13821    :ivar system_data: The system metadata relating to this resource.
13822    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13823    :param local_log_errors: Local log_errors setting.
13824    :type local_log_errors: str
13825    :param master_log_errors: Master log_errors setting.
13826    :type master_log_errors: str
13827    :param local_log_errors_max_length: Local log_errors_max_len setting.
13828    :type local_log_errors_max_length: str
13829    :param master_log_errors_max_length: Master log_errors_max_len setting.
13830    :type master_log_errors_max_length: str
13831    """
13832
13833    _validation = {
13834        'id': {'readonly': True},
13835        'name': {'readonly': True},
13836        'type': {'readonly': True},
13837        'system_data': {'readonly': True},
13838    }
13839
13840    _attribute_map = {
13841        'id': {'key': 'id', 'type': 'str'},
13842        'name': {'key': 'name', 'type': 'str'},
13843        'kind': {'key': 'kind', 'type': 'str'},
13844        'type': {'key': 'type', 'type': 'str'},
13845        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13846        'local_log_errors': {'key': 'properties.localLogErrors', 'type': 'str'},
13847        'master_log_errors': {'key': 'properties.masterLogErrors', 'type': 'str'},
13848        'local_log_errors_max_length': {'key': 'properties.localLogErrorsMaxLength', 'type': 'str'},
13849        'master_log_errors_max_length': {'key': 'properties.masterLogErrorsMaxLength', 'type': 'str'},
13850    }
13851
13852    def __init__(
13853        self,
13854        **kwargs
13855    ):
13856        super(SitePhpErrorLogFlag, self).__init__(**kwargs)
13857        self.local_log_errors = kwargs.get('local_log_errors', None)
13858        self.master_log_errors = kwargs.get('master_log_errors', None)
13859        self.local_log_errors_max_length = kwargs.get('local_log_errors_max_length', None)
13860        self.master_log_errors_max_length = kwargs.get('master_log_errors_max_length', None)
13861
13862
13863class SiteSeal(msrest.serialization.Model):
13864    """Site seal.
13865
13866    All required parameters must be populated in order to send to Azure.
13867
13868    :param html: Required. HTML snippet.
13869    :type html: str
13870    """
13871
13872    _validation = {
13873        'html': {'required': True},
13874    }
13875
13876    _attribute_map = {
13877        'html': {'key': 'html', 'type': 'str'},
13878    }
13879
13880    def __init__(
13881        self,
13882        **kwargs
13883    ):
13884        super(SiteSeal, self).__init__(**kwargs)
13885        self.html = kwargs['html']
13886
13887
13888class SiteSealRequest(msrest.serialization.Model):
13889    """Site seal request.
13890
13891    :param light_theme: If :code:`<code>true</code>` use the light color theme for site seal;
13892     otherwise, use the default color theme.
13893    :type light_theme: bool
13894    :param locale: Locale of site seal.
13895    :type locale: str
13896    """
13897
13898    _attribute_map = {
13899        'light_theme': {'key': 'lightTheme', 'type': 'bool'},
13900        'locale': {'key': 'locale', 'type': 'str'},
13901    }
13902
13903    def __init__(
13904        self,
13905        **kwargs
13906    ):
13907        super(SiteSealRequest, self).__init__(**kwargs)
13908        self.light_theme = kwargs.get('light_theme', None)
13909        self.locale = kwargs.get('locale', None)
13910
13911
13912class SiteSourceControl(ProxyOnlyResource):
13913    """Source control configuration for an app.
13914
13915    Variables are only populated by the server, and will be ignored when sending a request.
13916
13917    :ivar id: Resource Id.
13918    :vartype id: str
13919    :ivar name: Resource Name.
13920    :vartype name: str
13921    :param kind: Kind of resource.
13922    :type kind: str
13923    :ivar type: Resource type.
13924    :vartype type: str
13925    :ivar system_data: The system metadata relating to this resource.
13926    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
13927    :param repo_url: Repository or source control URL.
13928    :type repo_url: str
13929    :param branch: Name of branch to use for deployment.
13930    :type branch: str
13931    :param is_manual_integration: :code:`<code>true</code>` to limit to manual integration;
13932     :code:`<code>false</code>` to enable continuous integration (which configures webhooks into
13933     online repos like GitHub).
13934    :type is_manual_integration: bool
13935    :param is_git_hub_action: :code:`<code>true</code>` if this is deployed via GitHub action.
13936    :type is_git_hub_action: bool
13937    :param deployment_rollback_enabled: :code:`<code>true</code>` to enable deployment rollback;
13938     otherwise, :code:`<code>false</code>`.
13939    :type deployment_rollback_enabled: bool
13940    :param is_mercurial: :code:`<code>true</code>` for a Mercurial repository;
13941     :code:`<code>false</code>` for a Git repository.
13942    :type is_mercurial: bool
13943    """
13944
13945    _validation = {
13946        'id': {'readonly': True},
13947        'name': {'readonly': True},
13948        'type': {'readonly': True},
13949        'system_data': {'readonly': True},
13950    }
13951
13952    _attribute_map = {
13953        'id': {'key': 'id', 'type': 'str'},
13954        'name': {'key': 'name', 'type': 'str'},
13955        'kind': {'key': 'kind', 'type': 'str'},
13956        'type': {'key': 'type', 'type': 'str'},
13957        'system_data': {'key': 'systemData', 'type': 'SystemData'},
13958        'repo_url': {'key': 'properties.repoUrl', 'type': 'str'},
13959        'branch': {'key': 'properties.branch', 'type': 'str'},
13960        'is_manual_integration': {'key': 'properties.isManualIntegration', 'type': 'bool'},
13961        'is_git_hub_action': {'key': 'properties.isGitHubAction', 'type': 'bool'},
13962        'deployment_rollback_enabled': {'key': 'properties.deploymentRollbackEnabled', 'type': 'bool'},
13963        'is_mercurial': {'key': 'properties.isMercurial', 'type': 'bool'},
13964    }
13965
13966    def __init__(
13967        self,
13968        **kwargs
13969    ):
13970        super(SiteSourceControl, self).__init__(**kwargs)
13971        self.repo_url = kwargs.get('repo_url', None)
13972        self.branch = kwargs.get('branch', None)
13973        self.is_manual_integration = kwargs.get('is_manual_integration', None)
13974        self.is_git_hub_action = kwargs.get('is_git_hub_action', None)
13975        self.deployment_rollback_enabled = kwargs.get('deployment_rollback_enabled', None)
13976        self.is_mercurial = kwargs.get('is_mercurial', None)
13977
13978
13979class SkuCapacity(msrest.serialization.Model):
13980    """Description of the App Service plan scale options.
13981
13982    :param minimum: Minimum number of workers for this App Service plan SKU.
13983    :type minimum: int
13984    :param maximum: Maximum number of workers for this App Service plan SKU.
13985    :type maximum: int
13986    :param default: Default number of workers for this App Service plan SKU.
13987    :type default: int
13988    :param scale_type: Available scale configurations for an App Service plan.
13989    :type scale_type: str
13990    """
13991
13992    _attribute_map = {
13993        'minimum': {'key': 'minimum', 'type': 'int'},
13994        'maximum': {'key': 'maximum', 'type': 'int'},
13995        'default': {'key': 'default', 'type': 'int'},
13996        'scale_type': {'key': 'scaleType', 'type': 'str'},
13997    }
13998
13999    def __init__(
14000        self,
14001        **kwargs
14002    ):
14003        super(SkuCapacity, self).__init__(**kwargs)
14004        self.minimum = kwargs.get('minimum', None)
14005        self.maximum = kwargs.get('maximum', None)
14006        self.default = kwargs.get('default', None)
14007        self.scale_type = kwargs.get('scale_type', None)
14008
14009
14010class SkuDescription(msrest.serialization.Model):
14011    """Description of a SKU for a scalable resource.
14012
14013    :param name: Name of the resource SKU.
14014    :type name: str
14015    :param tier: Service tier of the resource SKU.
14016    :type tier: str
14017    :param size: Size specifier of the resource SKU.
14018    :type size: str
14019    :param family: Family code of the resource SKU.
14020    :type family: str
14021    :param capacity: Current number of instances assigned to the resource.
14022    :type capacity: int
14023    :param sku_capacity: Min, max, and default scale values of the SKU.
14024    :type sku_capacity: ~azure.mgmt.web.v2020_09_01.models.SkuCapacity
14025    :param locations: Locations of the SKU.
14026    :type locations: list[str]
14027    :param capabilities: Capabilities of the SKU, e.g., is traffic manager enabled?.
14028    :type capabilities: list[~azure.mgmt.web.v2020_09_01.models.Capability]
14029    """
14030
14031    _attribute_map = {
14032        'name': {'key': 'name', 'type': 'str'},
14033        'tier': {'key': 'tier', 'type': 'str'},
14034        'size': {'key': 'size', 'type': 'str'},
14035        'family': {'key': 'family', 'type': 'str'},
14036        'capacity': {'key': 'capacity', 'type': 'int'},
14037        'sku_capacity': {'key': 'skuCapacity', 'type': 'SkuCapacity'},
14038        'locations': {'key': 'locations', 'type': '[str]'},
14039        'capabilities': {'key': 'capabilities', 'type': '[Capability]'},
14040    }
14041
14042    def __init__(
14043        self,
14044        **kwargs
14045    ):
14046        super(SkuDescription, self).__init__(**kwargs)
14047        self.name = kwargs.get('name', None)
14048        self.tier = kwargs.get('tier', None)
14049        self.size = kwargs.get('size', None)
14050        self.family = kwargs.get('family', None)
14051        self.capacity = kwargs.get('capacity', None)
14052        self.sku_capacity = kwargs.get('sku_capacity', None)
14053        self.locations = kwargs.get('locations', None)
14054        self.capabilities = kwargs.get('capabilities', None)
14055
14056
14057class SkuInfo(msrest.serialization.Model):
14058    """SKU discovery information.
14059
14060    :param resource_type: Resource type that this SKU applies to.
14061    :type resource_type: str
14062    :param sku: Name and tier of the SKU.
14063    :type sku: ~azure.mgmt.web.v2020_09_01.models.SkuDescription
14064    :param capacity: Min, max, and default scale values of the SKU.
14065    :type capacity: ~azure.mgmt.web.v2020_09_01.models.SkuCapacity
14066    """
14067
14068    _attribute_map = {
14069        'resource_type': {'key': 'resourceType', 'type': 'str'},
14070        'sku': {'key': 'sku', 'type': 'SkuDescription'},
14071        'capacity': {'key': 'capacity', 'type': 'SkuCapacity'},
14072    }
14073
14074    def __init__(
14075        self,
14076        **kwargs
14077    ):
14078        super(SkuInfo, self).__init__(**kwargs)
14079        self.resource_type = kwargs.get('resource_type', None)
14080        self.sku = kwargs.get('sku', None)
14081        self.capacity = kwargs.get('capacity', None)
14082
14083
14084class SkuInfoCollection(msrest.serialization.Model):
14085    """Collection of SKU information.
14086
14087    Variables are only populated by the server, and will be ignored when sending a request.
14088
14089    All required parameters must be populated in order to send to Azure.
14090
14091    :param value: Required. Collection of resources.
14092    :type value: list[~azure.mgmt.web.v2020_09_01.models.SkuInfo]
14093    :ivar next_link: Link to next page of resources.
14094    :vartype next_link: str
14095    """
14096
14097    _validation = {
14098        'value': {'required': True},
14099        'next_link': {'readonly': True},
14100    }
14101
14102    _attribute_map = {
14103        'value': {'key': 'value', 'type': '[SkuInfo]'},
14104        'next_link': {'key': 'nextLink', 'type': 'str'},
14105    }
14106
14107    def __init__(
14108        self,
14109        **kwargs
14110    ):
14111        super(SkuInfoCollection, self).__init__(**kwargs)
14112        self.value = kwargs['value']
14113        self.next_link = None
14114
14115
14116class SkuInfos(msrest.serialization.Model):
14117    """Collection of SKU information.
14118
14119    :param resource_type: Resource type that this SKU applies to.
14120    :type resource_type: str
14121    :param skus: List of SKUs the subscription is able to use.
14122    :type skus: list[~azure.mgmt.web.v2020_09_01.models.GlobalCsmSkuDescription]
14123    """
14124
14125    _attribute_map = {
14126        'resource_type': {'key': 'resourceType', 'type': 'str'},
14127        'skus': {'key': 'skus', 'type': '[GlobalCsmSkuDescription]'},
14128    }
14129
14130    def __init__(
14131        self,
14132        **kwargs
14133    ):
14134        super(SkuInfos, self).__init__(**kwargs)
14135        self.resource_type = kwargs.get('resource_type', None)
14136        self.skus = kwargs.get('skus', None)
14137
14138
14139class SlotConfigNamesResource(ProxyOnlyResource):
14140    """Slot Config names azure resource.
14141
14142    Variables are only populated by the server, and will be ignored when sending a request.
14143
14144    :ivar id: Resource Id.
14145    :vartype id: str
14146    :ivar name: Resource Name.
14147    :vartype name: str
14148    :param kind: Kind of resource.
14149    :type kind: str
14150    :ivar type: Resource type.
14151    :vartype type: str
14152    :ivar system_data: The system metadata relating to this resource.
14153    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14154    :param connection_string_names: List of connection string names.
14155    :type connection_string_names: list[str]
14156    :param app_setting_names: List of application settings names.
14157    :type app_setting_names: list[str]
14158    :param azure_storage_config_names: List of external Azure storage account identifiers.
14159    :type azure_storage_config_names: list[str]
14160    """
14161
14162    _validation = {
14163        'id': {'readonly': True},
14164        'name': {'readonly': True},
14165        'type': {'readonly': True},
14166        'system_data': {'readonly': True},
14167    }
14168
14169    _attribute_map = {
14170        'id': {'key': 'id', 'type': 'str'},
14171        'name': {'key': 'name', 'type': 'str'},
14172        'kind': {'key': 'kind', 'type': 'str'},
14173        'type': {'key': 'type', 'type': 'str'},
14174        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14175        'connection_string_names': {'key': 'properties.connectionStringNames', 'type': '[str]'},
14176        'app_setting_names': {'key': 'properties.appSettingNames', 'type': '[str]'},
14177        'azure_storage_config_names': {'key': 'properties.azureStorageConfigNames', 'type': '[str]'},
14178    }
14179
14180    def __init__(
14181        self,
14182        **kwargs
14183    ):
14184        super(SlotConfigNamesResource, self).__init__(**kwargs)
14185        self.connection_string_names = kwargs.get('connection_string_names', None)
14186        self.app_setting_names = kwargs.get('app_setting_names', None)
14187        self.azure_storage_config_names = kwargs.get('azure_storage_config_names', None)
14188
14189
14190class SlotDifference(ProxyOnlyResource):
14191    """A setting difference between two deployment slots of an app.
14192
14193    Variables are only populated by the server, and will be ignored when sending a request.
14194
14195    :ivar id: Resource Id.
14196    :vartype id: str
14197    :ivar name: Resource Name.
14198    :vartype name: str
14199    :param kind: Kind of resource.
14200    :type kind: str
14201    :ivar type: Resource type.
14202    :vartype type: str
14203    :ivar system_data: The system metadata relating to this resource.
14204    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14205    :ivar level: Level of the difference: Information, Warning or Error.
14206    :vartype level: str
14207    :ivar setting_type: The type of the setting: General, AppSetting or ConnectionString.
14208    :vartype setting_type: str
14209    :ivar diff_rule: Rule that describes how to process the setting difference during a slot swap.
14210    :vartype diff_rule: str
14211    :ivar setting_name: Name of the setting.
14212    :vartype setting_name: str
14213    :ivar value_in_current_slot: Value of the setting in the current slot.
14214    :vartype value_in_current_slot: str
14215    :ivar value_in_target_slot: Value of the setting in the target slot.
14216    :vartype value_in_target_slot: str
14217    :ivar description: Description of the setting difference.
14218    :vartype description: str
14219    """
14220
14221    _validation = {
14222        'id': {'readonly': True},
14223        'name': {'readonly': True},
14224        'type': {'readonly': True},
14225        'system_data': {'readonly': True},
14226        'level': {'readonly': True},
14227        'setting_type': {'readonly': True},
14228        'diff_rule': {'readonly': True},
14229        'setting_name': {'readonly': True},
14230        'value_in_current_slot': {'readonly': True},
14231        'value_in_target_slot': {'readonly': True},
14232        'description': {'readonly': True},
14233    }
14234
14235    _attribute_map = {
14236        'id': {'key': 'id', 'type': 'str'},
14237        'name': {'key': 'name', 'type': 'str'},
14238        'kind': {'key': 'kind', 'type': 'str'},
14239        'type': {'key': 'type', 'type': 'str'},
14240        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14241        'level': {'key': 'properties.level', 'type': 'str'},
14242        'setting_type': {'key': 'properties.settingType', 'type': 'str'},
14243        'diff_rule': {'key': 'properties.diffRule', 'type': 'str'},
14244        'setting_name': {'key': 'properties.settingName', 'type': 'str'},
14245        'value_in_current_slot': {'key': 'properties.valueInCurrentSlot', 'type': 'str'},
14246        'value_in_target_slot': {'key': 'properties.valueInTargetSlot', 'type': 'str'},
14247        'description': {'key': 'properties.description', 'type': 'str'},
14248    }
14249
14250    def __init__(
14251        self,
14252        **kwargs
14253    ):
14254        super(SlotDifference, self).__init__(**kwargs)
14255        self.level = None
14256        self.setting_type = None
14257        self.diff_rule = None
14258        self.setting_name = None
14259        self.value_in_current_slot = None
14260        self.value_in_target_slot = None
14261        self.description = None
14262
14263
14264class SlotDifferenceCollection(msrest.serialization.Model):
14265    """Collection of slot differences.
14266
14267    Variables are only populated by the server, and will be ignored when sending a request.
14268
14269    All required parameters must be populated in order to send to Azure.
14270
14271    :param value: Required. Collection of resources.
14272    :type value: list[~azure.mgmt.web.v2020_09_01.models.SlotDifference]
14273    :ivar next_link: Link to next page of resources.
14274    :vartype next_link: str
14275    """
14276
14277    _validation = {
14278        'value': {'required': True},
14279        'next_link': {'readonly': True},
14280    }
14281
14282    _attribute_map = {
14283        'value': {'key': 'value', 'type': '[SlotDifference]'},
14284        'next_link': {'key': 'nextLink', 'type': 'str'},
14285    }
14286
14287    def __init__(
14288        self,
14289        **kwargs
14290    ):
14291        super(SlotDifferenceCollection, self).__init__(**kwargs)
14292        self.value = kwargs['value']
14293        self.next_link = None
14294
14295
14296class SlotSwapStatus(msrest.serialization.Model):
14297    """The status of the last successful slot swap operation.
14298
14299    Variables are only populated by the server, and will be ignored when sending a request.
14300
14301    :ivar timestamp_utc: The time the last successful slot swap completed.
14302    :vartype timestamp_utc: ~datetime.datetime
14303    :ivar source_slot_name: The source slot of the last swap operation.
14304    :vartype source_slot_name: str
14305    :ivar destination_slot_name: The destination slot of the last swap operation.
14306    :vartype destination_slot_name: str
14307    """
14308
14309    _validation = {
14310        'timestamp_utc': {'readonly': True},
14311        'source_slot_name': {'readonly': True},
14312        'destination_slot_name': {'readonly': True},
14313    }
14314
14315    _attribute_map = {
14316        'timestamp_utc': {'key': 'timestampUtc', 'type': 'iso-8601'},
14317        'source_slot_name': {'key': 'sourceSlotName', 'type': 'str'},
14318        'destination_slot_name': {'key': 'destinationSlotName', 'type': 'str'},
14319    }
14320
14321    def __init__(
14322        self,
14323        **kwargs
14324    ):
14325        super(SlotSwapStatus, self).__init__(**kwargs)
14326        self.timestamp_utc = None
14327        self.source_slot_name = None
14328        self.destination_slot_name = None
14329
14330
14331class SlowRequestsBasedTrigger(msrest.serialization.Model):
14332    """Trigger based on request execution time.
14333
14334    :param time_taken: Time taken.
14335    :type time_taken: str
14336    :param count: Request Count.
14337    :type count: int
14338    :param time_interval: Time interval.
14339    :type time_interval: str
14340    """
14341
14342    _attribute_map = {
14343        'time_taken': {'key': 'timeTaken', 'type': 'str'},
14344        'count': {'key': 'count', 'type': 'int'},
14345        'time_interval': {'key': 'timeInterval', 'type': 'str'},
14346    }
14347
14348    def __init__(
14349        self,
14350        **kwargs
14351    ):
14352        super(SlowRequestsBasedTrigger, self).__init__(**kwargs)
14353        self.time_taken = kwargs.get('time_taken', None)
14354        self.count = kwargs.get('count', None)
14355        self.time_interval = kwargs.get('time_interval', None)
14356
14357
14358class Snapshot(ProxyOnlyResource):
14359    """A snapshot of an app.
14360
14361    Variables are only populated by the server, and will be ignored when sending a request.
14362
14363    :ivar id: Resource Id.
14364    :vartype id: str
14365    :ivar name: Resource Name.
14366    :vartype name: str
14367    :param kind: Kind of resource.
14368    :type kind: str
14369    :ivar type: Resource type.
14370    :vartype type: str
14371    :ivar system_data: The system metadata relating to this resource.
14372    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14373    :ivar time: The time the snapshot was taken.
14374    :vartype time: str
14375    """
14376
14377    _validation = {
14378        'id': {'readonly': True},
14379        'name': {'readonly': True},
14380        'type': {'readonly': True},
14381        'system_data': {'readonly': True},
14382        'time': {'readonly': True},
14383    }
14384
14385    _attribute_map = {
14386        'id': {'key': 'id', 'type': 'str'},
14387        'name': {'key': 'name', 'type': 'str'},
14388        'kind': {'key': 'kind', 'type': 'str'},
14389        'type': {'key': 'type', 'type': 'str'},
14390        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14391        'time': {'key': 'properties.time', 'type': 'str'},
14392    }
14393
14394    def __init__(
14395        self,
14396        **kwargs
14397    ):
14398        super(Snapshot, self).__init__(**kwargs)
14399        self.time = None
14400
14401
14402class SnapshotCollection(msrest.serialization.Model):
14403    """Collection of snapshots which can be used to revert an app to a previous time.
14404
14405    Variables are only populated by the server, and will be ignored when sending a request.
14406
14407    All required parameters must be populated in order to send to Azure.
14408
14409    :param value: Required. Collection of resources.
14410    :type value: list[~azure.mgmt.web.v2020_09_01.models.Snapshot]
14411    :ivar next_link: Link to next page of resources.
14412    :vartype next_link: str
14413    """
14414
14415    _validation = {
14416        'value': {'required': True},
14417        'next_link': {'readonly': True},
14418    }
14419
14420    _attribute_map = {
14421        'value': {'key': 'value', 'type': '[Snapshot]'},
14422        'next_link': {'key': 'nextLink', 'type': 'str'},
14423    }
14424
14425    def __init__(
14426        self,
14427        **kwargs
14428    ):
14429        super(SnapshotCollection, self).__init__(**kwargs)
14430        self.value = kwargs['value']
14431        self.next_link = None
14432
14433
14434class SnapshotRecoverySource(msrest.serialization.Model):
14435    """Specifies the web app that snapshot contents will be retrieved from.
14436
14437    :param location: Geographical location of the source web app, e.g. SouthEastAsia,
14438     SouthCentralUS.
14439    :type location: str
14440    :param id: ARM resource ID of the source app.
14441    /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}
14442     for production slots and
14443    /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName}
14444     for other slots.
14445    :type id: str
14446    """
14447
14448    _attribute_map = {
14449        'location': {'key': 'location', 'type': 'str'},
14450        'id': {'key': 'id', 'type': 'str'},
14451    }
14452
14453    def __init__(
14454        self,
14455        **kwargs
14456    ):
14457        super(SnapshotRecoverySource, self).__init__(**kwargs)
14458        self.location = kwargs.get('location', None)
14459        self.id = kwargs.get('id', None)
14460
14461
14462class SnapshotRestoreRequest(ProxyOnlyResource):
14463    """Details about app recovery operation.
14464
14465    Variables are only populated by the server, and will be ignored when sending a request.
14466
14467    :ivar id: Resource Id.
14468    :vartype id: str
14469    :ivar name: Resource Name.
14470    :vartype name: str
14471    :param kind: Kind of resource.
14472    :type kind: str
14473    :ivar type: Resource type.
14474    :vartype type: str
14475    :ivar system_data: The system metadata relating to this resource.
14476    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14477    :param snapshot_time: Point in time in which the app restore should be done, formatted as a
14478     DateTime string.
14479    :type snapshot_time: str
14480    :param recovery_source: Optional. Specifies the web app that snapshot contents will be
14481     retrieved from.
14482     If empty, the targeted web app will be used as the source.
14483    :type recovery_source: ~azure.mgmt.web.v2020_09_01.models.SnapshotRecoverySource
14484    :param overwrite: If :code:`<code>true</code>` the restore operation can overwrite source app;
14485     otherwise, :code:`<code>false</code>`.
14486    :type overwrite: bool
14487    :param recover_configuration: If true, site configuration, in addition to content, will be
14488     reverted.
14489    :type recover_configuration: bool
14490    :param ignore_conflicting_host_names: If true, custom hostname conflicts will be ignored when
14491     recovering to a target web app.
14492     This setting is only necessary when RecoverConfiguration is enabled.
14493    :type ignore_conflicting_host_names: bool
14494    :param use_dr_secondary: If true, the snapshot is retrieved from DRSecondary endpoint.
14495    :type use_dr_secondary: bool
14496    """
14497
14498    _validation = {
14499        'id': {'readonly': True},
14500        'name': {'readonly': True},
14501        'type': {'readonly': True},
14502        'system_data': {'readonly': True},
14503    }
14504
14505    _attribute_map = {
14506        'id': {'key': 'id', 'type': 'str'},
14507        'name': {'key': 'name', 'type': 'str'},
14508        'kind': {'key': 'kind', 'type': 'str'},
14509        'type': {'key': 'type', 'type': 'str'},
14510        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14511        'snapshot_time': {'key': 'properties.snapshotTime', 'type': 'str'},
14512        'recovery_source': {'key': 'properties.recoverySource', 'type': 'SnapshotRecoverySource'},
14513        'overwrite': {'key': 'properties.overwrite', 'type': 'bool'},
14514        'recover_configuration': {'key': 'properties.recoverConfiguration', 'type': 'bool'},
14515        'ignore_conflicting_host_names': {'key': 'properties.ignoreConflictingHostNames', 'type': 'bool'},
14516        'use_dr_secondary': {'key': 'properties.useDRSecondary', 'type': 'bool'},
14517    }
14518
14519    def __init__(
14520        self,
14521        **kwargs
14522    ):
14523        super(SnapshotRestoreRequest, self).__init__(**kwargs)
14524        self.snapshot_time = kwargs.get('snapshot_time', None)
14525        self.recovery_source = kwargs.get('recovery_source', None)
14526        self.overwrite = kwargs.get('overwrite', None)
14527        self.recover_configuration = kwargs.get('recover_configuration', None)
14528        self.ignore_conflicting_host_names = kwargs.get('ignore_conflicting_host_names', None)
14529        self.use_dr_secondary = kwargs.get('use_dr_secondary', None)
14530
14531
14532class Solution(msrest.serialization.Model):
14533    """Class Representing Solution for problems detected.
14534
14535    :param id: Solution Id.
14536    :type id: float
14537    :param display_name: Display Name of the solution.
14538    :type display_name: str
14539    :param order: Order of the solution.
14540    :type order: float
14541    :param description: Description of the solution.
14542    :type description: str
14543    :param type: Type of Solution. Possible values include: "QuickSolution", "DeepInvestigation",
14544     "BestPractices".
14545    :type type: str or ~azure.mgmt.web.v2020_09_01.models.SolutionType
14546    :param data: Solution Data.
14547    :type data: list[list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]]
14548    :param metadata: Solution Metadata.
14549    :type metadata: list[list[~azure.mgmt.web.v2020_09_01.models.NameValuePair]]
14550    """
14551
14552    _attribute_map = {
14553        'id': {'key': 'id', 'type': 'float'},
14554        'display_name': {'key': 'displayName', 'type': 'str'},
14555        'order': {'key': 'order', 'type': 'float'},
14556        'description': {'key': 'description', 'type': 'str'},
14557        'type': {'key': 'type', 'type': 'str'},
14558        'data': {'key': 'data', 'type': '[[NameValuePair]]'},
14559        'metadata': {'key': 'metadata', 'type': '[[NameValuePair]]'},
14560    }
14561
14562    def __init__(
14563        self,
14564        **kwargs
14565    ):
14566        super(Solution, self).__init__(**kwargs)
14567        self.id = kwargs.get('id', None)
14568        self.display_name = kwargs.get('display_name', None)
14569        self.order = kwargs.get('order', None)
14570        self.description = kwargs.get('description', None)
14571        self.type = kwargs.get('type', None)
14572        self.data = kwargs.get('data', None)
14573        self.metadata = kwargs.get('metadata', None)
14574
14575
14576class SourceControl(ProxyOnlyResource):
14577    """The source control OAuth token.
14578
14579    Variables are only populated by the server, and will be ignored when sending a request.
14580
14581    :ivar id: Resource Id.
14582    :vartype id: str
14583    :ivar name: Resource Name.
14584    :vartype name: str
14585    :param kind: Kind of resource.
14586    :type kind: str
14587    :ivar type: Resource type.
14588    :vartype type: str
14589    :ivar system_data: The system metadata relating to this resource.
14590    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14591    :param token: OAuth access token.
14592    :type token: str
14593    :param token_secret: OAuth access token secret.
14594    :type token_secret: str
14595    :param refresh_token: OAuth refresh token.
14596    :type refresh_token: str
14597    :param expiration_time: OAuth token expiration.
14598    :type expiration_time: ~datetime.datetime
14599    """
14600
14601    _validation = {
14602        'id': {'readonly': True},
14603        'name': {'readonly': True},
14604        'type': {'readonly': True},
14605        'system_data': {'readonly': True},
14606    }
14607
14608    _attribute_map = {
14609        'id': {'key': 'id', 'type': 'str'},
14610        'name': {'key': 'name', 'type': 'str'},
14611        'kind': {'key': 'kind', 'type': 'str'},
14612        'type': {'key': 'type', 'type': 'str'},
14613        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14614        'token': {'key': 'properties.token', 'type': 'str'},
14615        'token_secret': {'key': 'properties.tokenSecret', 'type': 'str'},
14616        'refresh_token': {'key': 'properties.refreshToken', 'type': 'str'},
14617        'expiration_time': {'key': 'properties.expirationTime', 'type': 'iso-8601'},
14618    }
14619
14620    def __init__(
14621        self,
14622        **kwargs
14623    ):
14624        super(SourceControl, self).__init__(**kwargs)
14625        self.token = kwargs.get('token', None)
14626        self.token_secret = kwargs.get('token_secret', None)
14627        self.refresh_token = kwargs.get('refresh_token', None)
14628        self.expiration_time = kwargs.get('expiration_time', None)
14629
14630
14631class SourceControlCollection(msrest.serialization.Model):
14632    """Collection of source controls.
14633
14634    Variables are only populated by the server, and will be ignored when sending a request.
14635
14636    All required parameters must be populated in order to send to Azure.
14637
14638    :param value: Required. Collection of resources.
14639    :type value: list[~azure.mgmt.web.v2020_09_01.models.SourceControl]
14640    :ivar next_link: Link to next page of resources.
14641    :vartype next_link: str
14642    """
14643
14644    _validation = {
14645        'value': {'required': True},
14646        'next_link': {'readonly': True},
14647    }
14648
14649    _attribute_map = {
14650        'value': {'key': 'value', 'type': '[SourceControl]'},
14651        'next_link': {'key': 'nextLink', 'type': 'str'},
14652    }
14653
14654    def __init__(
14655        self,
14656        **kwargs
14657    ):
14658        super(SourceControlCollection, self).__init__(**kwargs)
14659        self.value = kwargs['value']
14660        self.next_link = None
14661
14662
14663class StackMajorVersion(msrest.serialization.Model):
14664    """Application stack major version.
14665
14666    :param display_version: Application stack major version (display only).
14667    :type display_version: str
14668    :param runtime_version: Application stack major version (runtime only).
14669    :type runtime_version: str
14670    :param is_default: :code:`<code>true</code>` if this is the default major version; otherwise,
14671     :code:`<code>false</code>`.
14672    :type is_default: bool
14673    :param minor_versions: Minor versions associated with the major version.
14674    :type minor_versions: list[~azure.mgmt.web.v2020_09_01.models.StackMinorVersion]
14675    :param application_insights: :code:`<code>true</code>` if this supports Application Insights;
14676     otherwise, :code:`<code>false</code>`.
14677    :type application_insights: bool
14678    :param is_preview: :code:`<code>true</code>` if this stack is in Preview, otherwise
14679     :code:`<code>false</code>`.
14680    :type is_preview: bool
14681    :param is_deprecated: :code:`<code>true</code>` if this stack has been deprecated, otherwise
14682     :code:`<code>false</code>`.
14683    :type is_deprecated: bool
14684    :param is_hidden: :code:`<code>true</code>` if this stack should be hidden for new customers on
14685     portal, otherwise :code:`<code>false</code>`.
14686    :type is_hidden: bool
14687    """
14688
14689    _attribute_map = {
14690        'display_version': {'key': 'displayVersion', 'type': 'str'},
14691        'runtime_version': {'key': 'runtimeVersion', 'type': 'str'},
14692        'is_default': {'key': 'isDefault', 'type': 'bool'},
14693        'minor_versions': {'key': 'minorVersions', 'type': '[StackMinorVersion]'},
14694        'application_insights': {'key': 'applicationInsights', 'type': 'bool'},
14695        'is_preview': {'key': 'isPreview', 'type': 'bool'},
14696        'is_deprecated': {'key': 'isDeprecated', 'type': 'bool'},
14697        'is_hidden': {'key': 'isHidden', 'type': 'bool'},
14698    }
14699
14700    def __init__(
14701        self,
14702        **kwargs
14703    ):
14704        super(StackMajorVersion, self).__init__(**kwargs)
14705        self.display_version = kwargs.get('display_version', None)
14706        self.runtime_version = kwargs.get('runtime_version', None)
14707        self.is_default = kwargs.get('is_default', None)
14708        self.minor_versions = kwargs.get('minor_versions', None)
14709        self.application_insights = kwargs.get('application_insights', None)
14710        self.is_preview = kwargs.get('is_preview', None)
14711        self.is_deprecated = kwargs.get('is_deprecated', None)
14712        self.is_hidden = kwargs.get('is_hidden', None)
14713
14714
14715class StackMinorVersion(msrest.serialization.Model):
14716    """Application stack minor version.
14717
14718    :param display_version: Application stack minor version (display only).
14719    :type display_version: str
14720    :param runtime_version: Application stack minor version (runtime only).
14721    :type runtime_version: str
14722    :param is_default: :code:`<code>true</code>` if this is the default minor version; otherwise,
14723     :code:`<code>false</code>`.
14724    :type is_default: bool
14725    :param is_remote_debugging_enabled: :code:`<code>true</code>` if this supports Remote
14726     Debugging, otherwise :code:`<code>false</code>`.
14727    :type is_remote_debugging_enabled: bool
14728    """
14729
14730    _attribute_map = {
14731        'display_version': {'key': 'displayVersion', 'type': 'str'},
14732        'runtime_version': {'key': 'runtimeVersion', 'type': 'str'},
14733        'is_default': {'key': 'isDefault', 'type': 'bool'},
14734        'is_remote_debugging_enabled': {'key': 'isRemoteDebuggingEnabled', 'type': 'bool'},
14735    }
14736
14737    def __init__(
14738        self,
14739        **kwargs
14740    ):
14741        super(StackMinorVersion, self).__init__(**kwargs)
14742        self.display_version = kwargs.get('display_version', None)
14743        self.runtime_version = kwargs.get('runtime_version', None)
14744        self.is_default = kwargs.get('is_default', None)
14745        self.is_remote_debugging_enabled = kwargs.get('is_remote_debugging_enabled', None)
14746
14747
14748class StampCapacity(msrest.serialization.Model):
14749    """Stamp capacity information.
14750
14751    :param name: Name of the stamp.
14752    :type name: str
14753    :param available_capacity: Available capacity (# of machines, bytes of storage etc...).
14754    :type available_capacity: long
14755    :param total_capacity: Total capacity (# of machines, bytes of storage etc...).
14756    :type total_capacity: long
14757    :param unit: Name of the unit.
14758    :type unit: str
14759    :param compute_mode: Shared/dedicated workers. Possible values include: "Shared", "Dedicated",
14760     "Dynamic".
14761    :type compute_mode: str or ~azure.mgmt.web.v2020_09_01.models.ComputeModeOptions
14762    :param worker_size: Size of the machines. Possible values include: "Small", "Medium", "Large",
14763     "D1", "D2", "D3", "NestedSmall", "Default".
14764    :type worker_size: str or ~azure.mgmt.web.v2020_09_01.models.WorkerSizeOptions
14765    :param worker_size_id: Size ID of machines:
14766     0 - Small
14767     1 - Medium
14768     2 - Large.
14769    :type worker_size_id: int
14770    :param exclude_from_capacity_allocation: If :code:`<code>true</code>`, it includes basic apps.
14771     Basic apps are not used for capacity allocation.
14772    :type exclude_from_capacity_allocation: bool
14773    :param is_applicable_for_all_compute_modes: :code:`<code>true</code>` if capacity is applicable
14774     for all apps; otherwise, :code:`<code>false</code>`.
14775    :type is_applicable_for_all_compute_modes: bool
14776    :param site_mode: Shared or Dedicated.
14777    :type site_mode: str
14778    :param is_linux: Is this a linux stamp capacity.
14779    :type is_linux: bool
14780    """
14781
14782    _attribute_map = {
14783        'name': {'key': 'name', 'type': 'str'},
14784        'available_capacity': {'key': 'availableCapacity', 'type': 'long'},
14785        'total_capacity': {'key': 'totalCapacity', 'type': 'long'},
14786        'unit': {'key': 'unit', 'type': 'str'},
14787        'compute_mode': {'key': 'computeMode', 'type': 'str'},
14788        'worker_size': {'key': 'workerSize', 'type': 'str'},
14789        'worker_size_id': {'key': 'workerSizeId', 'type': 'int'},
14790        'exclude_from_capacity_allocation': {'key': 'excludeFromCapacityAllocation', 'type': 'bool'},
14791        'is_applicable_for_all_compute_modes': {'key': 'isApplicableForAllComputeModes', 'type': 'bool'},
14792        'site_mode': {'key': 'siteMode', 'type': 'str'},
14793        'is_linux': {'key': 'isLinux', 'type': 'bool'},
14794    }
14795
14796    def __init__(
14797        self,
14798        **kwargs
14799    ):
14800        super(StampCapacity, self).__init__(**kwargs)
14801        self.name = kwargs.get('name', None)
14802        self.available_capacity = kwargs.get('available_capacity', None)
14803        self.total_capacity = kwargs.get('total_capacity', None)
14804        self.unit = kwargs.get('unit', None)
14805        self.compute_mode = kwargs.get('compute_mode', None)
14806        self.worker_size = kwargs.get('worker_size', None)
14807        self.worker_size_id = kwargs.get('worker_size_id', None)
14808        self.exclude_from_capacity_allocation = kwargs.get('exclude_from_capacity_allocation', None)
14809        self.is_applicable_for_all_compute_modes = kwargs.get('is_applicable_for_all_compute_modes', None)
14810        self.site_mode = kwargs.get('site_mode', None)
14811        self.is_linux = kwargs.get('is_linux', None)
14812
14813
14814class StampCapacityCollection(msrest.serialization.Model):
14815    """Collection of stamp capacities.
14816
14817    Variables are only populated by the server, and will be ignored when sending a request.
14818
14819    All required parameters must be populated in order to send to Azure.
14820
14821    :param value: Required. Collection of resources.
14822    :type value: list[~azure.mgmt.web.v2020_09_01.models.StampCapacity]
14823    :ivar next_link: Link to next page of resources.
14824    :vartype next_link: str
14825    """
14826
14827    _validation = {
14828        'value': {'required': True},
14829        'next_link': {'readonly': True},
14830    }
14831
14832    _attribute_map = {
14833        'value': {'key': 'value', 'type': '[StampCapacity]'},
14834        'next_link': {'key': 'nextLink', 'type': 'str'},
14835    }
14836
14837    def __init__(
14838        self,
14839        **kwargs
14840    ):
14841        super(StampCapacityCollection, self).__init__(**kwargs)
14842        self.value = kwargs['value']
14843        self.next_link = None
14844
14845
14846class StaticSiteARMResource(Resource):
14847    """Static Site ARM resource.
14848
14849    Variables are only populated by the server, and will be ignored when sending a request.
14850
14851    All required parameters must be populated in order to send to Azure.
14852
14853    :ivar id: Resource Id.
14854    :vartype id: str
14855    :ivar name: Resource Name.
14856    :vartype name: str
14857    :param kind: Kind of resource.
14858    :type kind: str
14859    :param location: Required. Resource Location.
14860    :type location: str
14861    :ivar type: Resource type.
14862    :vartype type: str
14863    :param tags: A set of tags. Resource tags.
14864    :type tags: dict[str, str]
14865    :ivar system_data: The system metadata relating to this resource.
14866    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14867    :param sku: Description of a SKU for a scalable resource.
14868    :type sku: ~azure.mgmt.web.v2020_09_01.models.SkuDescription
14869    :ivar default_hostname: The default autogenerated hostname for the static site.
14870    :vartype default_hostname: str
14871    :param repository_url: URL for the repository of the static site.
14872    :type repository_url: str
14873    :param branch: The target branch in the repository.
14874    :type branch: str
14875    :ivar custom_domains: The custom domains associated with this static site.
14876    :vartype custom_domains: list[str]
14877    :param repository_token: A user's github repository token. This is used to setup the Github
14878     Actions workflow file and API secrets.
14879    :type repository_token: str
14880    :param build_properties: Build properties to configure on the repository.
14881    :type build_properties: ~azure.mgmt.web.v2020_09_01.models.StaticSiteBuildProperties
14882    """
14883
14884    _validation = {
14885        'id': {'readonly': True},
14886        'name': {'readonly': True},
14887        'location': {'required': True},
14888        'type': {'readonly': True},
14889        'system_data': {'readonly': True},
14890        'default_hostname': {'readonly': True},
14891        'custom_domains': {'readonly': True},
14892    }
14893
14894    _attribute_map = {
14895        'id': {'key': 'id', 'type': 'str'},
14896        'name': {'key': 'name', 'type': 'str'},
14897        'kind': {'key': 'kind', 'type': 'str'},
14898        'location': {'key': 'location', 'type': 'str'},
14899        'type': {'key': 'type', 'type': 'str'},
14900        'tags': {'key': 'tags', 'type': '{str}'},
14901        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14902        'sku': {'key': 'sku', 'type': 'SkuDescription'},
14903        'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'},
14904        'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'},
14905        'branch': {'key': 'properties.branch', 'type': 'str'},
14906        'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'},
14907        'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'},
14908        'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'},
14909    }
14910
14911    def __init__(
14912        self,
14913        **kwargs
14914    ):
14915        super(StaticSiteARMResource, self).__init__(**kwargs)
14916        self.sku = kwargs.get('sku', None)
14917        self.default_hostname = None
14918        self.repository_url = kwargs.get('repository_url', None)
14919        self.branch = kwargs.get('branch', None)
14920        self.custom_domains = None
14921        self.repository_token = kwargs.get('repository_token', None)
14922        self.build_properties = kwargs.get('build_properties', None)
14923
14924
14925class StaticSiteBuildARMResource(ProxyOnlyResource):
14926    """Static Site Build ARM resource.
14927
14928    Variables are only populated by the server, and will be ignored when sending a request.
14929
14930    :ivar id: Resource Id.
14931    :vartype id: str
14932    :ivar name: Resource Name.
14933    :vartype name: str
14934    :param kind: Kind of resource.
14935    :type kind: str
14936    :ivar type: Resource type.
14937    :vartype type: str
14938    :ivar system_data: The system metadata relating to this resource.
14939    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
14940    :ivar build_id: An identifier for the static site build.
14941    :vartype build_id: str
14942    :ivar source_branch: The source branch.
14943    :vartype source_branch: str
14944    :ivar pull_request_title: The title of a pull request that a static site build is related to.
14945    :vartype pull_request_title: str
14946    :ivar hostname: The hostname for a static site build.
14947    :vartype hostname: str
14948    :ivar created_time_utc: When this build was created.
14949    :vartype created_time_utc: ~datetime.datetime
14950    :ivar last_updated_on: When this build was updated.
14951    :vartype last_updated_on: ~datetime.datetime
14952    :ivar status: The status of the static site build. Possible values include:
14953     "WaitingForDeployment", "Uploading", "Deploying", "Ready", "Failed", "Deleting", "Detached".
14954    :vartype status: str or ~azure.mgmt.web.v2020_09_01.models.BuildStatus
14955    """
14956
14957    _validation = {
14958        'id': {'readonly': True},
14959        'name': {'readonly': True},
14960        'type': {'readonly': True},
14961        'system_data': {'readonly': True},
14962        'build_id': {'readonly': True},
14963        'source_branch': {'readonly': True},
14964        'pull_request_title': {'readonly': True},
14965        'hostname': {'readonly': True},
14966        'created_time_utc': {'readonly': True},
14967        'last_updated_on': {'readonly': True},
14968        'status': {'readonly': True},
14969    }
14970
14971    _attribute_map = {
14972        'id': {'key': 'id', 'type': 'str'},
14973        'name': {'key': 'name', 'type': 'str'},
14974        'kind': {'key': 'kind', 'type': 'str'},
14975        'type': {'key': 'type', 'type': 'str'},
14976        'system_data': {'key': 'systemData', 'type': 'SystemData'},
14977        'build_id': {'key': 'properties.buildId', 'type': 'str'},
14978        'source_branch': {'key': 'properties.sourceBranch', 'type': 'str'},
14979        'pull_request_title': {'key': 'properties.pullRequestTitle', 'type': 'str'},
14980        'hostname': {'key': 'properties.hostname', 'type': 'str'},
14981        'created_time_utc': {'key': 'properties.createdTimeUtc', 'type': 'iso-8601'},
14982        'last_updated_on': {'key': 'properties.lastUpdatedOn', 'type': 'iso-8601'},
14983        'status': {'key': 'properties.status', 'type': 'str'},
14984    }
14985
14986    def __init__(
14987        self,
14988        **kwargs
14989    ):
14990        super(StaticSiteBuildARMResource, self).__init__(**kwargs)
14991        self.build_id = None
14992        self.source_branch = None
14993        self.pull_request_title = None
14994        self.hostname = None
14995        self.created_time_utc = None
14996        self.last_updated_on = None
14997        self.status = None
14998
14999
15000class StaticSiteBuildCollection(msrest.serialization.Model):
15001    """Collection of static site builds.
15002
15003    Variables are only populated by the server, and will be ignored when sending a request.
15004
15005    All required parameters must be populated in order to send to Azure.
15006
15007    :param value: Required. Collection of resources.
15008    :type value: list[~azure.mgmt.web.v2020_09_01.models.StaticSiteBuildARMResource]
15009    :ivar next_link: Link to next page of resources.
15010    :vartype next_link: str
15011    """
15012
15013    _validation = {
15014        'value': {'required': True},
15015        'next_link': {'readonly': True},
15016    }
15017
15018    _attribute_map = {
15019        'value': {'key': 'value', 'type': '[StaticSiteBuildARMResource]'},
15020        'next_link': {'key': 'nextLink', 'type': 'str'},
15021    }
15022
15023    def __init__(
15024        self,
15025        **kwargs
15026    ):
15027        super(StaticSiteBuildCollection, self).__init__(**kwargs)
15028        self.value = kwargs['value']
15029        self.next_link = None
15030
15031
15032class StaticSiteBuildProperties(msrest.serialization.Model):
15033    """Build properties for the static site.
15034
15035    :param app_location: The path to the app code within the repository.
15036    :type app_location: str
15037    :param api_location: The path to the api code within the repository.
15038    :type api_location: str
15039    :param app_artifact_location: The path of the app artifacts after building.
15040    :type app_artifact_location: str
15041    """
15042
15043    _attribute_map = {
15044        'app_location': {'key': 'appLocation', 'type': 'str'},
15045        'api_location': {'key': 'apiLocation', 'type': 'str'},
15046        'app_artifact_location': {'key': 'appArtifactLocation', 'type': 'str'},
15047    }
15048
15049    def __init__(
15050        self,
15051        **kwargs
15052    ):
15053        super(StaticSiteBuildProperties, self).__init__(**kwargs)
15054        self.app_location = kwargs.get('app_location', None)
15055        self.api_location = kwargs.get('api_location', None)
15056        self.app_artifact_location = kwargs.get('app_artifact_location', None)
15057
15058
15059class StaticSiteCollection(msrest.serialization.Model):
15060    """Collection of static sites.
15061
15062    Variables are only populated by the server, and will be ignored when sending a request.
15063
15064    All required parameters must be populated in order to send to Azure.
15065
15066    :param value: Required. Collection of resources.
15067    :type value: list[~azure.mgmt.web.v2020_09_01.models.StaticSiteARMResource]
15068    :ivar next_link: Link to next page of resources.
15069    :vartype next_link: str
15070    """
15071
15072    _validation = {
15073        'value': {'required': True},
15074        'next_link': {'readonly': True},
15075    }
15076
15077    _attribute_map = {
15078        'value': {'key': 'value', 'type': '[StaticSiteARMResource]'},
15079        'next_link': {'key': 'nextLink', 'type': 'str'},
15080    }
15081
15082    def __init__(
15083        self,
15084        **kwargs
15085    ):
15086        super(StaticSiteCollection, self).__init__(**kwargs)
15087        self.value = kwargs['value']
15088        self.next_link = None
15089
15090
15091class StaticSiteCustomDomainOverviewARMResource(ProxyOnlyResource):
15092    """Static Site Custom Domain Overview ARM resource.
15093
15094    Variables are only populated by the server, and will be ignored when sending a request.
15095
15096    :ivar id: Resource Id.
15097    :vartype id: str
15098    :ivar name: Resource Name.
15099    :vartype name: str
15100    :param kind: Kind of resource.
15101    :type kind: str
15102    :ivar type: Resource type.
15103    :vartype type: str
15104    :ivar system_data: The system metadata relating to this resource.
15105    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15106    :ivar domain_name: The domain name for the static site custom domain.
15107    :vartype domain_name: str
15108    :ivar created_on: The date and time on which the custom domain was created for the static site.
15109    :vartype created_on: ~datetime.datetime
15110    """
15111
15112    _validation = {
15113        'id': {'readonly': True},
15114        'name': {'readonly': True},
15115        'type': {'readonly': True},
15116        'system_data': {'readonly': True},
15117        'domain_name': {'readonly': True},
15118        'created_on': {'readonly': True},
15119    }
15120
15121    _attribute_map = {
15122        'id': {'key': 'id', 'type': 'str'},
15123        'name': {'key': 'name', 'type': 'str'},
15124        'kind': {'key': 'kind', 'type': 'str'},
15125        'type': {'key': 'type', 'type': 'str'},
15126        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15127        'domain_name': {'key': 'properties.domainName', 'type': 'str'},
15128        'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'},
15129    }
15130
15131    def __init__(
15132        self,
15133        **kwargs
15134    ):
15135        super(StaticSiteCustomDomainOverviewARMResource, self).__init__(**kwargs)
15136        self.domain_name = None
15137        self.created_on = None
15138
15139
15140class StaticSiteCustomDomainOverviewCollection(msrest.serialization.Model):
15141    """Collection of static site custom domains.
15142
15143    Variables are only populated by the server, and will be ignored when sending a request.
15144
15145    All required parameters must be populated in order to send to Azure.
15146
15147    :param value: Required. Collection of resources.
15148    :type value: list[~azure.mgmt.web.v2020_09_01.models.StaticSiteCustomDomainOverviewARMResource]
15149    :ivar next_link: Link to next page of resources.
15150    :vartype next_link: str
15151    """
15152
15153    _validation = {
15154        'value': {'required': True},
15155        'next_link': {'readonly': True},
15156    }
15157
15158    _attribute_map = {
15159        'value': {'key': 'value', 'type': '[StaticSiteCustomDomainOverviewARMResource]'},
15160        'next_link': {'key': 'nextLink', 'type': 'str'},
15161    }
15162
15163    def __init__(
15164        self,
15165        **kwargs
15166    ):
15167        super(StaticSiteCustomDomainOverviewCollection, self).__init__(**kwargs)
15168        self.value = kwargs['value']
15169        self.next_link = None
15170
15171
15172class StaticSiteFunctionOverviewARMResource(ProxyOnlyResource):
15173    """Static Site Function Overview ARM resource.
15174
15175    Variables are only populated by the server, and will be ignored when sending a request.
15176
15177    :ivar id: Resource Id.
15178    :vartype id: str
15179    :ivar name: Resource Name.
15180    :vartype name: str
15181    :param kind: Kind of resource.
15182    :type kind: str
15183    :ivar type: Resource type.
15184    :vartype type: str
15185    :ivar system_data: The system metadata relating to this resource.
15186    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15187    :ivar function_name: The name for the function.
15188    :vartype function_name: str
15189    :ivar trigger_type: The trigger type of the function. Possible values include: "HttpTrigger",
15190     "Unknown".
15191    :vartype trigger_type: str or ~azure.mgmt.web.v2020_09_01.models.TriggerTypes
15192    """
15193
15194    _validation = {
15195        'id': {'readonly': True},
15196        'name': {'readonly': True},
15197        'type': {'readonly': True},
15198        'system_data': {'readonly': True},
15199        'function_name': {'readonly': True},
15200        'trigger_type': {'readonly': True},
15201    }
15202
15203    _attribute_map = {
15204        'id': {'key': 'id', 'type': 'str'},
15205        'name': {'key': 'name', 'type': 'str'},
15206        'kind': {'key': 'kind', 'type': 'str'},
15207        'type': {'key': 'type', 'type': 'str'},
15208        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15209        'function_name': {'key': 'properties.functionName', 'type': 'str'},
15210        'trigger_type': {'key': 'properties.triggerType', 'type': 'str'},
15211    }
15212
15213    def __init__(
15214        self,
15215        **kwargs
15216    ):
15217        super(StaticSiteFunctionOverviewARMResource, self).__init__(**kwargs)
15218        self.function_name = None
15219        self.trigger_type = None
15220
15221
15222class StaticSiteFunctionOverviewCollection(msrest.serialization.Model):
15223    """Collection of static site functions.
15224
15225    Variables are only populated by the server, and will be ignored when sending a request.
15226
15227    All required parameters must be populated in order to send to Azure.
15228
15229    :param value: Required. Collection of resources.
15230    :type value: list[~azure.mgmt.web.v2020_09_01.models.StaticSiteFunctionOverviewARMResource]
15231    :ivar next_link: Link to next page of resources.
15232    :vartype next_link: str
15233    """
15234
15235    _validation = {
15236        'value': {'required': True},
15237        'next_link': {'readonly': True},
15238    }
15239
15240    _attribute_map = {
15241        'value': {'key': 'value', 'type': '[StaticSiteFunctionOverviewARMResource]'},
15242        'next_link': {'key': 'nextLink', 'type': 'str'},
15243    }
15244
15245    def __init__(
15246        self,
15247        **kwargs
15248    ):
15249        super(StaticSiteFunctionOverviewCollection, self).__init__(**kwargs)
15250        self.value = kwargs['value']
15251        self.next_link = None
15252
15253
15254class StaticSitePatchResource(ProxyOnlyResource):
15255    """ARM resource for a static site when patching.
15256
15257    Variables are only populated by the server, and will be ignored when sending a request.
15258
15259    :ivar id: Resource Id.
15260    :vartype id: str
15261    :ivar name: Resource Name.
15262    :vartype name: str
15263    :param kind: Kind of resource.
15264    :type kind: str
15265    :ivar type: Resource type.
15266    :vartype type: str
15267    :ivar system_data: The system metadata relating to this resource.
15268    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15269    :ivar default_hostname: The default autogenerated hostname for the static site.
15270    :vartype default_hostname: str
15271    :param repository_url: URL for the repository of the static site.
15272    :type repository_url: str
15273    :param branch: The target branch in the repository.
15274    :type branch: str
15275    :ivar custom_domains: The custom domains associated with this static site.
15276    :vartype custom_domains: list[str]
15277    :param repository_token: A user's github repository token. This is used to setup the Github
15278     Actions workflow file and API secrets.
15279    :type repository_token: str
15280    :param build_properties: Build properties to configure on the repository.
15281    :type build_properties: ~azure.mgmt.web.v2020_09_01.models.StaticSiteBuildProperties
15282    """
15283
15284    _validation = {
15285        'id': {'readonly': True},
15286        'name': {'readonly': True},
15287        'type': {'readonly': True},
15288        'system_data': {'readonly': True},
15289        'default_hostname': {'readonly': True},
15290        'custom_domains': {'readonly': True},
15291    }
15292
15293    _attribute_map = {
15294        'id': {'key': 'id', 'type': 'str'},
15295        'name': {'key': 'name', 'type': 'str'},
15296        'kind': {'key': 'kind', 'type': 'str'},
15297        'type': {'key': 'type', 'type': 'str'},
15298        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15299        'default_hostname': {'key': 'properties.defaultHostname', 'type': 'str'},
15300        'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'},
15301        'branch': {'key': 'properties.branch', 'type': 'str'},
15302        'custom_domains': {'key': 'properties.customDomains', 'type': '[str]'},
15303        'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'},
15304        'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'},
15305    }
15306
15307    def __init__(
15308        self,
15309        **kwargs
15310    ):
15311        super(StaticSitePatchResource, self).__init__(**kwargs)
15312        self.default_hostname = None
15313        self.repository_url = kwargs.get('repository_url', None)
15314        self.branch = kwargs.get('branch', None)
15315        self.custom_domains = None
15316        self.repository_token = kwargs.get('repository_token', None)
15317        self.build_properties = kwargs.get('build_properties', None)
15318
15319
15320class StaticSiteResetPropertiesARMResource(ProxyOnlyResource):
15321    """Static Site Reset Properties ARM resource.
15322
15323    Variables are only populated by the server, and will be ignored when sending a request.
15324
15325    :ivar id: Resource Id.
15326    :vartype id: str
15327    :ivar name: Resource Name.
15328    :vartype name: str
15329    :param kind: Kind of resource.
15330    :type kind: str
15331    :ivar type: Resource type.
15332    :vartype type: str
15333    :ivar system_data: The system metadata relating to this resource.
15334    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15335    :param repository_token: The token which proves admin privileges to the repository.
15336    :type repository_token: str
15337    :param should_update_repository: Determines whether the repository should be updated with the
15338     new properties.
15339    :type should_update_repository: bool
15340    """
15341
15342    _validation = {
15343        'id': {'readonly': True},
15344        'name': {'readonly': True},
15345        'type': {'readonly': True},
15346        'system_data': {'readonly': True},
15347    }
15348
15349    _attribute_map = {
15350        'id': {'key': 'id', 'type': 'str'},
15351        'name': {'key': 'name', 'type': 'str'},
15352        'kind': {'key': 'kind', 'type': 'str'},
15353        'type': {'key': 'type', 'type': 'str'},
15354        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15355        'repository_token': {'key': 'properties.repositoryToken', 'type': 'str'},
15356        'should_update_repository': {'key': 'properties.shouldUpdateRepository', 'type': 'bool'},
15357    }
15358
15359    def __init__(
15360        self,
15361        **kwargs
15362    ):
15363        super(StaticSiteResetPropertiesARMResource, self).__init__(**kwargs)
15364        self.repository_token = kwargs.get('repository_token', None)
15365        self.should_update_repository = kwargs.get('should_update_repository', None)
15366
15367
15368class StaticSitesWorkflowPreview(ProxyOnlyResource):
15369    """Preview for the Static Site Workflow to be generated.
15370
15371    Variables are only populated by the server, and will be ignored when sending a request.
15372
15373    :ivar id: Resource Id.
15374    :vartype id: str
15375    :ivar name: Resource Name.
15376    :vartype name: str
15377    :param kind: Kind of resource.
15378    :type kind: str
15379    :ivar type: Resource type.
15380    :vartype type: str
15381    :ivar system_data: The system metadata relating to this resource.
15382    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15383    :ivar path: The path for the workflow file to be generated.
15384    :vartype path: str
15385    :ivar contents: The contents for the workflow file to be generated.
15386    :vartype contents: str
15387    """
15388
15389    _validation = {
15390        'id': {'readonly': True},
15391        'name': {'readonly': True},
15392        'type': {'readonly': True},
15393        'system_data': {'readonly': True},
15394        'path': {'readonly': True},
15395        'contents': {'readonly': True},
15396    }
15397
15398    _attribute_map = {
15399        'id': {'key': 'id', 'type': 'str'},
15400        'name': {'key': 'name', 'type': 'str'},
15401        'kind': {'key': 'kind', 'type': 'str'},
15402        'type': {'key': 'type', 'type': 'str'},
15403        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15404        'path': {'key': 'properties.path', 'type': 'str'},
15405        'contents': {'key': 'properties.contents', 'type': 'str'},
15406    }
15407
15408    def __init__(
15409        self,
15410        **kwargs
15411    ):
15412        super(StaticSitesWorkflowPreview, self).__init__(**kwargs)
15413        self.path = None
15414        self.contents = None
15415
15416
15417class StaticSitesWorkflowPreviewRequest(ProxyOnlyResource):
15418    """Request entity for previewing the Static Site workflow.
15419
15420    Variables are only populated by the server, and will be ignored when sending a request.
15421
15422    :ivar id: Resource Id.
15423    :vartype id: str
15424    :ivar name: Resource Name.
15425    :vartype name: str
15426    :param kind: Kind of resource.
15427    :type kind: str
15428    :ivar type: Resource type.
15429    :vartype type: str
15430    :ivar system_data: The system metadata relating to this resource.
15431    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15432    :param repository_url: URL for the repository of the static site.
15433    :type repository_url: str
15434    :param branch: The target branch in the repository.
15435    :type branch: str
15436    :param build_properties: Build properties to configure on the repository.
15437    :type build_properties: ~azure.mgmt.web.v2020_09_01.models.StaticSiteBuildProperties
15438    """
15439
15440    _validation = {
15441        'id': {'readonly': True},
15442        'name': {'readonly': True},
15443        'type': {'readonly': True},
15444        'system_data': {'readonly': True},
15445    }
15446
15447    _attribute_map = {
15448        'id': {'key': 'id', 'type': 'str'},
15449        'name': {'key': 'name', 'type': 'str'},
15450        'kind': {'key': 'kind', 'type': 'str'},
15451        'type': {'key': 'type', 'type': 'str'},
15452        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15453        'repository_url': {'key': 'properties.repositoryUrl', 'type': 'str'},
15454        'branch': {'key': 'properties.branch', 'type': 'str'},
15455        'build_properties': {'key': 'properties.buildProperties', 'type': 'StaticSiteBuildProperties'},
15456    }
15457
15458    def __init__(
15459        self,
15460        **kwargs
15461    ):
15462        super(StaticSitesWorkflowPreviewRequest, self).__init__(**kwargs)
15463        self.repository_url = kwargs.get('repository_url', None)
15464        self.branch = kwargs.get('branch', None)
15465        self.build_properties = kwargs.get('build_properties', None)
15466
15467
15468class StaticSiteUserARMResource(ProxyOnlyResource):
15469    """Static Site User ARM resource.
15470
15471    Variables are only populated by the server, and will be ignored when sending a request.
15472
15473    :ivar id: Resource Id.
15474    :vartype id: str
15475    :ivar name: Resource Name.
15476    :vartype name: str
15477    :param kind: Kind of resource.
15478    :type kind: str
15479    :ivar type: Resource type.
15480    :vartype type: str
15481    :ivar system_data: The system metadata relating to this resource.
15482    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15483    :ivar provider: The identity provider for the static site user.
15484    :vartype provider: str
15485    :ivar user_id: The user id for the static site user.
15486    :vartype user_id: str
15487    :ivar display_name: The display name for the static site user.
15488    :vartype display_name: str
15489    :param roles: The roles for the static site user, in free-form string format.
15490    :type roles: str
15491    """
15492
15493    _validation = {
15494        'id': {'readonly': True},
15495        'name': {'readonly': True},
15496        'type': {'readonly': True},
15497        'system_data': {'readonly': True},
15498        'provider': {'readonly': True},
15499        'user_id': {'readonly': True},
15500        'display_name': {'readonly': True},
15501    }
15502
15503    _attribute_map = {
15504        'id': {'key': 'id', 'type': 'str'},
15505        'name': {'key': 'name', 'type': 'str'},
15506        'kind': {'key': 'kind', 'type': 'str'},
15507        'type': {'key': 'type', 'type': 'str'},
15508        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15509        'provider': {'key': 'properties.provider', 'type': 'str'},
15510        'user_id': {'key': 'properties.userId', 'type': 'str'},
15511        'display_name': {'key': 'properties.displayName', 'type': 'str'},
15512        'roles': {'key': 'properties.roles', 'type': 'str'},
15513    }
15514
15515    def __init__(
15516        self,
15517        **kwargs
15518    ):
15519        super(StaticSiteUserARMResource, self).__init__(**kwargs)
15520        self.provider = None
15521        self.user_id = None
15522        self.display_name = None
15523        self.roles = kwargs.get('roles', None)
15524
15525
15526class StaticSiteUserCollection(msrest.serialization.Model):
15527    """Collection of static site custom users.
15528
15529    Variables are only populated by the server, and will be ignored when sending a request.
15530
15531    All required parameters must be populated in order to send to Azure.
15532
15533    :param value: Required. Collection of resources.
15534    :type value: list[~azure.mgmt.web.v2020_09_01.models.StaticSiteUserARMResource]
15535    :ivar next_link: Link to next page of resources.
15536    :vartype next_link: str
15537    """
15538
15539    _validation = {
15540        'value': {'required': True},
15541        'next_link': {'readonly': True},
15542    }
15543
15544    _attribute_map = {
15545        'value': {'key': 'value', 'type': '[StaticSiteUserARMResource]'},
15546        'next_link': {'key': 'nextLink', 'type': 'str'},
15547    }
15548
15549    def __init__(
15550        self,
15551        **kwargs
15552    ):
15553        super(StaticSiteUserCollection, self).__init__(**kwargs)
15554        self.value = kwargs['value']
15555        self.next_link = None
15556
15557
15558class StaticSiteUserInvitationRequestResource(ProxyOnlyResource):
15559    """Static sites user roles invitation resource.
15560
15561    Variables are only populated by the server, and will be ignored when sending a request.
15562
15563    :ivar id: Resource Id.
15564    :vartype id: str
15565    :ivar name: Resource Name.
15566    :vartype name: str
15567    :param kind: Kind of resource.
15568    :type kind: str
15569    :ivar type: Resource type.
15570    :vartype type: str
15571    :ivar system_data: The system metadata relating to this resource.
15572    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15573    :param domain: The domain name for the static site custom domain.
15574    :type domain: str
15575    :param provider: The identity provider for the static site user.
15576    :type provider: str
15577    :param user_details: The user id for the static site user.
15578    :type user_details: str
15579    :param roles: The roles for the static site user, in free-form string format.
15580    :type roles: str
15581    :param num_hours_to_expiration: The number of hours the sas token stays valid.
15582    :type num_hours_to_expiration: int
15583    """
15584
15585    _validation = {
15586        'id': {'readonly': True},
15587        'name': {'readonly': True},
15588        'type': {'readonly': True},
15589        'system_data': {'readonly': True},
15590    }
15591
15592    _attribute_map = {
15593        'id': {'key': 'id', 'type': 'str'},
15594        'name': {'key': 'name', 'type': 'str'},
15595        'kind': {'key': 'kind', 'type': 'str'},
15596        'type': {'key': 'type', 'type': 'str'},
15597        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15598        'domain': {'key': 'properties.domain', 'type': 'str'},
15599        'provider': {'key': 'properties.provider', 'type': 'str'},
15600        'user_details': {'key': 'properties.userDetails', 'type': 'str'},
15601        'roles': {'key': 'properties.roles', 'type': 'str'},
15602        'num_hours_to_expiration': {'key': 'properties.numHoursToExpiration', 'type': 'int'},
15603    }
15604
15605    def __init__(
15606        self,
15607        **kwargs
15608    ):
15609        super(StaticSiteUserInvitationRequestResource, self).__init__(**kwargs)
15610        self.domain = kwargs.get('domain', None)
15611        self.provider = kwargs.get('provider', None)
15612        self.user_details = kwargs.get('user_details', None)
15613        self.roles = kwargs.get('roles', None)
15614        self.num_hours_to_expiration = kwargs.get('num_hours_to_expiration', None)
15615
15616
15617class StaticSiteUserInvitationResponseResource(ProxyOnlyResource):
15618    """Static sites user roles invitation link resource.
15619
15620    Variables are only populated by the server, and will be ignored when sending a request.
15621
15622    :ivar id: Resource Id.
15623    :vartype id: str
15624    :ivar name: Resource Name.
15625    :vartype name: str
15626    :param kind: Kind of resource.
15627    :type kind: str
15628    :ivar type: Resource type.
15629    :vartype type: str
15630    :ivar system_data: The system metadata relating to this resource.
15631    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15632    :ivar expires_on: The expiration time of the invitation.
15633    :vartype expires_on: ~datetime.datetime
15634    :ivar invitation_url: The url for the invitation link.
15635    :vartype invitation_url: str
15636    """
15637
15638    _validation = {
15639        'id': {'readonly': True},
15640        'name': {'readonly': True},
15641        'type': {'readonly': True},
15642        'system_data': {'readonly': True},
15643        'expires_on': {'readonly': True},
15644        'invitation_url': {'readonly': True},
15645    }
15646
15647    _attribute_map = {
15648        'id': {'key': 'id', 'type': 'str'},
15649        'name': {'key': 'name', 'type': 'str'},
15650        'kind': {'key': 'kind', 'type': 'str'},
15651        'type': {'key': 'type', 'type': 'str'},
15652        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15653        'expires_on': {'key': 'properties.expiresOn', 'type': 'iso-8601'},
15654        'invitation_url': {'key': 'properties.invitationUrl', 'type': 'str'},
15655    }
15656
15657    def __init__(
15658        self,
15659        **kwargs
15660    ):
15661        super(StaticSiteUserInvitationResponseResource, self).__init__(**kwargs)
15662        self.expires_on = None
15663        self.invitation_url = None
15664
15665
15666class StatusCodesBasedTrigger(msrest.serialization.Model):
15667    """Trigger based on status code.
15668
15669    :param status: HTTP status code.
15670    :type status: int
15671    :param sub_status: Request Sub Status.
15672    :type sub_status: int
15673    :param win32_status: Win32 error code.
15674    :type win32_status: int
15675    :param count: Request Count.
15676    :type count: int
15677    :param time_interval: Time interval.
15678    :type time_interval: str
15679    """
15680
15681    _attribute_map = {
15682        'status': {'key': 'status', 'type': 'int'},
15683        'sub_status': {'key': 'subStatus', 'type': 'int'},
15684        'win32_status': {'key': 'win32Status', 'type': 'int'},
15685        'count': {'key': 'count', 'type': 'int'},
15686        'time_interval': {'key': 'timeInterval', 'type': 'str'},
15687    }
15688
15689    def __init__(
15690        self,
15691        **kwargs
15692    ):
15693        super(StatusCodesBasedTrigger, self).__init__(**kwargs)
15694        self.status = kwargs.get('status', None)
15695        self.sub_status = kwargs.get('sub_status', None)
15696        self.win32_status = kwargs.get('win32_status', None)
15697        self.count = kwargs.get('count', None)
15698        self.time_interval = kwargs.get('time_interval', None)
15699
15700
15701class StorageMigrationOptions(ProxyOnlyResource):
15702    """Options for app content migration.
15703
15704    Variables are only populated by the server, and will be ignored when sending a request.
15705
15706    :ivar id: Resource Id.
15707    :vartype id: str
15708    :ivar name: Resource Name.
15709    :vartype name: str
15710    :param kind: Kind of resource.
15711    :type kind: str
15712    :ivar type: Resource type.
15713    :vartype type: str
15714    :ivar system_data: The system metadata relating to this resource.
15715    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15716    :param azurefiles_connection_string: AzureFiles connection string.
15717    :type azurefiles_connection_string: str
15718    :param azurefiles_share: AzureFiles share.
15719    :type azurefiles_share: str
15720    :param switch_site_after_migration: :code:`<code>true</code>`if the app should be switched
15721     over; otherwise, :code:`<code>false</code>`.
15722    :type switch_site_after_migration: bool
15723    :param block_write_access_to_site: :code:`<code>true</code>` if the app should be read only
15724     during copy operation; otherwise, :code:`<code>false</code>`.
15725    :type block_write_access_to_site: bool
15726    """
15727
15728    _validation = {
15729        'id': {'readonly': True},
15730        'name': {'readonly': True},
15731        'type': {'readonly': True},
15732        'system_data': {'readonly': True},
15733    }
15734
15735    _attribute_map = {
15736        'id': {'key': 'id', 'type': 'str'},
15737        'name': {'key': 'name', 'type': 'str'},
15738        'kind': {'key': 'kind', 'type': 'str'},
15739        'type': {'key': 'type', 'type': 'str'},
15740        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15741        'azurefiles_connection_string': {'key': 'properties.azurefilesConnectionString', 'type': 'str'},
15742        'azurefiles_share': {'key': 'properties.azurefilesShare', 'type': 'str'},
15743        'switch_site_after_migration': {'key': 'properties.switchSiteAfterMigration', 'type': 'bool'},
15744        'block_write_access_to_site': {'key': 'properties.blockWriteAccessToSite', 'type': 'bool'},
15745    }
15746
15747    def __init__(
15748        self,
15749        **kwargs
15750    ):
15751        super(StorageMigrationOptions, self).__init__(**kwargs)
15752        self.azurefiles_connection_string = kwargs.get('azurefiles_connection_string', None)
15753        self.azurefiles_share = kwargs.get('azurefiles_share', None)
15754        self.switch_site_after_migration = kwargs.get('switch_site_after_migration', False)
15755        self.block_write_access_to_site = kwargs.get('block_write_access_to_site', False)
15756
15757
15758class StorageMigrationResponse(ProxyOnlyResource):
15759    """Response for a migration of app content request.
15760
15761    Variables are only populated by the server, and will be ignored when sending a request.
15762
15763    :ivar id: Resource Id.
15764    :vartype id: str
15765    :ivar name: Resource Name.
15766    :vartype name: str
15767    :param kind: Kind of resource.
15768    :type kind: str
15769    :ivar type: Resource type.
15770    :vartype type: str
15771    :ivar system_data: The system metadata relating to this resource.
15772    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15773    :ivar operation_id: When server starts the migration process, it will return an operation ID
15774     identifying that particular migration operation.
15775    :vartype operation_id: str
15776    """
15777
15778    _validation = {
15779        'id': {'readonly': True},
15780        'name': {'readonly': True},
15781        'type': {'readonly': True},
15782        'system_data': {'readonly': True},
15783        'operation_id': {'readonly': True},
15784    }
15785
15786    _attribute_map = {
15787        'id': {'key': 'id', 'type': 'str'},
15788        'name': {'key': 'name', 'type': 'str'},
15789        'kind': {'key': 'kind', 'type': 'str'},
15790        'type': {'key': 'type', 'type': 'str'},
15791        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15792        'operation_id': {'key': 'properties.operationId', 'type': 'str'},
15793    }
15794
15795    def __init__(
15796        self,
15797        **kwargs
15798    ):
15799        super(StorageMigrationResponse, self).__init__(**kwargs)
15800        self.operation_id = None
15801
15802
15803class StringDictionary(ProxyOnlyResource):
15804    """String dictionary resource.
15805
15806    Variables are only populated by the server, and will be ignored when sending a request.
15807
15808    :ivar id: Resource Id.
15809    :vartype id: str
15810    :ivar name: Resource Name.
15811    :vartype name: str
15812    :param kind: Kind of resource.
15813    :type kind: str
15814    :ivar type: Resource type.
15815    :vartype type: str
15816    :ivar system_data: The system metadata relating to this resource.
15817    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15818    :param properties: Settings.
15819    :type properties: dict[str, str]
15820    """
15821
15822    _validation = {
15823        'id': {'readonly': True},
15824        'name': {'readonly': True},
15825        'type': {'readonly': True},
15826        'system_data': {'readonly': True},
15827    }
15828
15829    _attribute_map = {
15830        'id': {'key': 'id', 'type': 'str'},
15831        'name': {'key': 'name', 'type': 'str'},
15832        'kind': {'key': 'kind', 'type': 'str'},
15833        'type': {'key': 'type', 'type': 'str'},
15834        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15835        'properties': {'key': 'properties', 'type': '{str}'},
15836    }
15837
15838    def __init__(
15839        self,
15840        **kwargs
15841    ):
15842        super(StringDictionary, self).__init__(**kwargs)
15843        self.properties = kwargs.get('properties', None)
15844
15845
15846class SwiftVirtualNetwork(ProxyOnlyResource):
15847    """Swift Virtual Network Contract. This is used to enable the new Swift way of doing virtual network integration.
15848
15849    Variables are only populated by the server, and will be ignored when sending a request.
15850
15851    :ivar id: Resource Id.
15852    :vartype id: str
15853    :ivar name: Resource Name.
15854    :vartype name: str
15855    :param kind: Kind of resource.
15856    :type kind: str
15857    :ivar type: Resource type.
15858    :vartype type: str
15859    :ivar system_data: The system metadata relating to this resource.
15860    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
15861    :param subnet_resource_id: The Virtual Network subnet's resource ID. This is the subnet that
15862     this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined
15863     first.
15864    :type subnet_resource_id: str
15865    :param swift_supported: A flag that specifies if the scale unit this Web App is on supports
15866     Swift integration.
15867    :type swift_supported: bool
15868    """
15869
15870    _validation = {
15871        'id': {'readonly': True},
15872        'name': {'readonly': True},
15873        'type': {'readonly': True},
15874        'system_data': {'readonly': True},
15875    }
15876
15877    _attribute_map = {
15878        'id': {'key': 'id', 'type': 'str'},
15879        'name': {'key': 'name', 'type': 'str'},
15880        'kind': {'key': 'kind', 'type': 'str'},
15881        'type': {'key': 'type', 'type': 'str'},
15882        'system_data': {'key': 'systemData', 'type': 'SystemData'},
15883        'subnet_resource_id': {'key': 'properties.subnetResourceId', 'type': 'str'},
15884        'swift_supported': {'key': 'properties.swiftSupported', 'type': 'bool'},
15885    }
15886
15887    def __init__(
15888        self,
15889        **kwargs
15890    ):
15891        super(SwiftVirtualNetwork, self).__init__(**kwargs)
15892        self.subnet_resource_id = kwargs.get('subnet_resource_id', None)
15893        self.swift_supported = kwargs.get('swift_supported', None)
15894
15895
15896class SystemData(msrest.serialization.Model):
15897    """Metadata pertaining to creation and last modification of the resource.
15898
15899    :param created_by: The identity that created the resource.
15900    :type created_by: str
15901    :param created_by_type: The type of identity that created the resource. Possible values
15902     include: "User", "Application", "ManagedIdentity", "Key".
15903    :type created_by_type: str or ~azure.mgmt.web.v2020_09_01.models.CreatedByType
15904    :param created_at: The timestamp of resource creation (UTC).
15905    :type created_at: ~datetime.datetime
15906    :param last_modified_by: The identity that last modified the resource.
15907    :type last_modified_by: str
15908    :param last_modified_by_type: The type of identity that last modified the resource. Possible
15909     values include: "User", "Application", "ManagedIdentity", "Key".
15910    :type last_modified_by_type: str or ~azure.mgmt.web.v2020_09_01.models.CreatedByType
15911    :param last_modified_at: The timestamp of resource last modification (UTC).
15912    :type last_modified_at: ~datetime.datetime
15913    """
15914
15915    _attribute_map = {
15916        'created_by': {'key': 'createdBy', 'type': 'str'},
15917        'created_by_type': {'key': 'createdByType', 'type': 'str'},
15918        'created_at': {'key': 'createdAt', 'type': 'iso-8601'},
15919        'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'},
15920        'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'},
15921        'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'},
15922    }
15923
15924    def __init__(
15925        self,
15926        **kwargs
15927    ):
15928        super(SystemData, self).__init__(**kwargs)
15929        self.created_by = kwargs.get('created_by', None)
15930        self.created_by_type = kwargs.get('created_by_type', None)
15931        self.created_at = kwargs.get('created_at', None)
15932        self.last_modified_by = kwargs.get('last_modified_by', None)
15933        self.last_modified_by_type = kwargs.get('last_modified_by_type', None)
15934        self.last_modified_at = kwargs.get('last_modified_at', None)
15935
15936
15937class TldLegalAgreement(msrest.serialization.Model):
15938    """Legal agreement for a top level domain.
15939
15940    All required parameters must be populated in order to send to Azure.
15941
15942    :param agreement_key: Required. Unique identifier for the agreement.
15943    :type agreement_key: str
15944    :param title: Required. Agreement title.
15945    :type title: str
15946    :param content: Required. Agreement details.
15947    :type content: str
15948    :param url: URL where a copy of the agreement details is hosted.
15949    :type url: str
15950    """
15951
15952    _validation = {
15953        'agreement_key': {'required': True},
15954        'title': {'required': True},
15955        'content': {'required': True},
15956    }
15957
15958    _attribute_map = {
15959        'agreement_key': {'key': 'agreementKey', 'type': 'str'},
15960        'title': {'key': 'title', 'type': 'str'},
15961        'content': {'key': 'content', 'type': 'str'},
15962        'url': {'key': 'url', 'type': 'str'},
15963    }
15964
15965    def __init__(
15966        self,
15967        **kwargs
15968    ):
15969        super(TldLegalAgreement, self).__init__(**kwargs)
15970        self.agreement_key = kwargs['agreement_key']
15971        self.title = kwargs['title']
15972        self.content = kwargs['content']
15973        self.url = kwargs.get('url', None)
15974
15975
15976class TldLegalAgreementCollection(msrest.serialization.Model):
15977    """Collection of top-level domain legal agreements.
15978
15979    Variables are only populated by the server, and will be ignored when sending a request.
15980
15981    All required parameters must be populated in order to send to Azure.
15982
15983    :param value: Required. Collection of resources.
15984    :type value: list[~azure.mgmt.web.v2020_09_01.models.TldLegalAgreement]
15985    :ivar next_link: Link to next page of resources.
15986    :vartype next_link: str
15987    """
15988
15989    _validation = {
15990        'value': {'required': True},
15991        'next_link': {'readonly': True},
15992    }
15993
15994    _attribute_map = {
15995        'value': {'key': 'value', 'type': '[TldLegalAgreement]'},
15996        'next_link': {'key': 'nextLink', 'type': 'str'},
15997    }
15998
15999    def __init__(
16000        self,
16001        **kwargs
16002    ):
16003        super(TldLegalAgreementCollection, self).__init__(**kwargs)
16004        self.value = kwargs['value']
16005        self.next_link = None
16006
16007
16008class TokenStore(ProxyOnlyResource):
16009    """TokenStore.
16010
16011    Variables are only populated by the server, and will be ignored when sending a request.
16012
16013    :ivar id: Resource Id.
16014    :vartype id: str
16015    :ivar name: Resource Name.
16016    :vartype name: str
16017    :param kind: Kind of resource.
16018    :type kind: str
16019    :ivar type: Resource type.
16020    :vartype type: str
16021    :ivar system_data: The system metadata relating to this resource.
16022    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16023    :param enabled:
16024    :type enabled: bool
16025    :param token_refresh_extension_hours:
16026    :type token_refresh_extension_hours: float
16027    :param file_system:
16028    :type file_system: ~azure.mgmt.web.v2020_09_01.models.FileSystemTokenStore
16029    :param azure_blob_storage:
16030    :type azure_blob_storage: ~azure.mgmt.web.v2020_09_01.models.BlobStorageTokenStore
16031    """
16032
16033    _validation = {
16034        'id': {'readonly': True},
16035        'name': {'readonly': True},
16036        'type': {'readonly': True},
16037        'system_data': {'readonly': True},
16038    }
16039
16040    _attribute_map = {
16041        'id': {'key': 'id', 'type': 'str'},
16042        'name': {'key': 'name', 'type': 'str'},
16043        'kind': {'key': 'kind', 'type': 'str'},
16044        'type': {'key': 'type', 'type': 'str'},
16045        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16046        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
16047        'token_refresh_extension_hours': {'key': 'properties.tokenRefreshExtensionHours', 'type': 'float'},
16048        'file_system': {'key': 'properties.fileSystem', 'type': 'FileSystemTokenStore'},
16049        'azure_blob_storage': {'key': 'properties.azureBlobStorage', 'type': 'BlobStorageTokenStore'},
16050    }
16051
16052    def __init__(
16053        self,
16054        **kwargs
16055    ):
16056        super(TokenStore, self).__init__(**kwargs)
16057        self.enabled = kwargs.get('enabled', None)
16058        self.token_refresh_extension_hours = kwargs.get('token_refresh_extension_hours', None)
16059        self.file_system = kwargs.get('file_system', None)
16060        self.azure_blob_storage = kwargs.get('azure_blob_storage', None)
16061
16062
16063class TopLevelDomain(ProxyOnlyResource):
16064    """A top level domain object.
16065
16066    Variables are only populated by the server, and will be ignored when sending a request.
16067
16068    :ivar id: Resource Id.
16069    :vartype id: str
16070    :ivar name: Resource Name.
16071    :vartype name: str
16072    :param kind: Kind of resource.
16073    :type kind: str
16074    :ivar type: Resource type.
16075    :vartype type: str
16076    :ivar system_data: The system metadata relating to this resource.
16077    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16078    :param privacy: If :code:`<code>true</code>`, then the top level domain supports domain
16079     privacy; otherwise, :code:`<code>false</code>`.
16080    :type privacy: bool
16081    """
16082
16083    _validation = {
16084        'id': {'readonly': True},
16085        'name': {'readonly': True},
16086        'type': {'readonly': True},
16087        'system_data': {'readonly': True},
16088    }
16089
16090    _attribute_map = {
16091        'id': {'key': 'id', 'type': 'str'},
16092        'name': {'key': 'name', 'type': 'str'},
16093        'kind': {'key': 'kind', 'type': 'str'},
16094        'type': {'key': 'type', 'type': 'str'},
16095        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16096        'privacy': {'key': 'properties.privacy', 'type': 'bool'},
16097    }
16098
16099    def __init__(
16100        self,
16101        **kwargs
16102    ):
16103        super(TopLevelDomain, self).__init__(**kwargs)
16104        self.privacy = kwargs.get('privacy', None)
16105
16106
16107class TopLevelDomainAgreementOption(msrest.serialization.Model):
16108    """Options for retrieving the list of top level domain legal agreements.
16109
16110    :param include_privacy: If :code:`<code>true</code>`, then the list of agreements will include
16111     agreements for domain privacy as well; otherwise, :code:`<code>false</code>`.
16112    :type include_privacy: bool
16113    :param for_transfer: If :code:`<code>true</code>`, then the list of agreements will include
16114     agreements for domain transfer as well; otherwise, :code:`<code>false</code>`.
16115    :type for_transfer: bool
16116    """
16117
16118    _attribute_map = {
16119        'include_privacy': {'key': 'includePrivacy', 'type': 'bool'},
16120        'for_transfer': {'key': 'forTransfer', 'type': 'bool'},
16121    }
16122
16123    def __init__(
16124        self,
16125        **kwargs
16126    ):
16127        super(TopLevelDomainAgreementOption, self).__init__(**kwargs)
16128        self.include_privacy = kwargs.get('include_privacy', None)
16129        self.for_transfer = kwargs.get('for_transfer', None)
16130
16131
16132class TopLevelDomainCollection(msrest.serialization.Model):
16133    """Collection of Top-level domains.
16134
16135    Variables are only populated by the server, and will be ignored when sending a request.
16136
16137    All required parameters must be populated in order to send to Azure.
16138
16139    :param value: Required. Collection of resources.
16140    :type value: list[~azure.mgmt.web.v2020_09_01.models.TopLevelDomain]
16141    :ivar next_link: Link to next page of resources.
16142    :vartype next_link: str
16143    """
16144
16145    _validation = {
16146        'value': {'required': True},
16147        'next_link': {'readonly': True},
16148    }
16149
16150    _attribute_map = {
16151        'value': {'key': 'value', 'type': '[TopLevelDomain]'},
16152        'next_link': {'key': 'nextLink', 'type': 'str'},
16153    }
16154
16155    def __init__(
16156        self,
16157        **kwargs
16158    ):
16159        super(TopLevelDomainCollection, self).__init__(**kwargs)
16160        self.value = kwargs['value']
16161        self.next_link = None
16162
16163
16164class TriggeredJobHistory(ProxyOnlyResource):
16165    """Triggered Web Job History. List of Triggered Web Job Run Information elements.
16166
16167    Variables are only populated by the server, and will be ignored when sending a request.
16168
16169    :ivar id: Resource Id.
16170    :vartype id: str
16171    :ivar name: Resource Name.
16172    :vartype name: str
16173    :param kind: Kind of resource.
16174    :type kind: str
16175    :ivar type: Resource type.
16176    :vartype type: str
16177    :ivar system_data: The system metadata relating to this resource.
16178    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16179    :param runs: List of triggered web job runs.
16180    :type runs: list[~azure.mgmt.web.v2020_09_01.models.TriggeredJobRun]
16181    """
16182
16183    _validation = {
16184        'id': {'readonly': True},
16185        'name': {'readonly': True},
16186        'type': {'readonly': True},
16187        'system_data': {'readonly': True},
16188    }
16189
16190    _attribute_map = {
16191        'id': {'key': 'id', 'type': 'str'},
16192        'name': {'key': 'name', 'type': 'str'},
16193        'kind': {'key': 'kind', 'type': 'str'},
16194        'type': {'key': 'type', 'type': 'str'},
16195        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16196        'runs': {'key': 'properties.runs', 'type': '[TriggeredJobRun]'},
16197    }
16198
16199    def __init__(
16200        self,
16201        **kwargs
16202    ):
16203        super(TriggeredJobHistory, self).__init__(**kwargs)
16204        self.runs = kwargs.get('runs', None)
16205
16206
16207class TriggeredJobHistoryCollection(msrest.serialization.Model):
16208    """Collection of Kudu continuous web job information elements.
16209
16210    Variables are only populated by the server, and will be ignored when sending a request.
16211
16212    All required parameters must be populated in order to send to Azure.
16213
16214    :param value: Required. Collection of resources.
16215    :type value: list[~azure.mgmt.web.v2020_09_01.models.TriggeredJobHistory]
16216    :ivar next_link: Link to next page of resources.
16217    :vartype next_link: str
16218    """
16219
16220    _validation = {
16221        'value': {'required': True},
16222        'next_link': {'readonly': True},
16223    }
16224
16225    _attribute_map = {
16226        'value': {'key': 'value', 'type': '[TriggeredJobHistory]'},
16227        'next_link': {'key': 'nextLink', 'type': 'str'},
16228    }
16229
16230    def __init__(
16231        self,
16232        **kwargs
16233    ):
16234        super(TriggeredJobHistoryCollection, self).__init__(**kwargs)
16235        self.value = kwargs['value']
16236        self.next_link = None
16237
16238
16239class TriggeredJobRun(ProxyOnlyResource):
16240    """Triggered Web Job Run Information.
16241
16242    Variables are only populated by the server, and will be ignored when sending a request.
16243
16244    :ivar id: Resource Id.
16245    :vartype id: str
16246    :ivar name: Resource Name.
16247    :vartype name: str
16248    :param kind: Kind of resource.
16249    :type kind: str
16250    :ivar type: Resource type.
16251    :vartype type: str
16252    :ivar system_data: The system metadata relating to this resource.
16253    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16254    :param web_job_id: Job ID.
16255    :type web_job_id: str
16256    :param web_job_name: Job name.
16257    :type web_job_name: str
16258    :param status: Job status. Possible values include: "Success", "Failed", "Error".
16259    :type status: str or ~azure.mgmt.web.v2020_09_01.models.TriggeredWebJobStatus
16260    :param start_time: Start time.
16261    :type start_time: ~datetime.datetime
16262    :param end_time: End time.
16263    :type end_time: ~datetime.datetime
16264    :param duration: Job duration.
16265    :type duration: str
16266    :param output_url: Output URL.
16267    :type output_url: str
16268    :param error_url: Error URL.
16269    :type error_url: str
16270    :param url: Job URL.
16271    :type url: str
16272    :param job_name: Job name.
16273    :type job_name: str
16274    :param trigger: Job trigger.
16275    :type trigger: str
16276    """
16277
16278    _validation = {
16279        'id': {'readonly': True},
16280        'name': {'readonly': True},
16281        'type': {'readonly': True},
16282        'system_data': {'readonly': True},
16283    }
16284
16285    _attribute_map = {
16286        'id': {'key': 'id', 'type': 'str'},
16287        'name': {'key': 'name', 'type': 'str'},
16288        'kind': {'key': 'kind', 'type': 'str'},
16289        'type': {'key': 'type', 'type': 'str'},
16290        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16291        'web_job_id': {'key': 'properties.web_job_id', 'type': 'str'},
16292        'web_job_name': {'key': 'properties.web_job_name', 'type': 'str'},
16293        'status': {'key': 'properties.status', 'type': 'str'},
16294        'start_time': {'key': 'properties.start_time', 'type': 'iso-8601'},
16295        'end_time': {'key': 'properties.end_time', 'type': 'iso-8601'},
16296        'duration': {'key': 'properties.duration', 'type': 'str'},
16297        'output_url': {'key': 'properties.output_url', 'type': 'str'},
16298        'error_url': {'key': 'properties.error_url', 'type': 'str'},
16299        'url': {'key': 'properties.url', 'type': 'str'},
16300        'job_name': {'key': 'properties.job_name', 'type': 'str'},
16301        'trigger': {'key': 'properties.trigger', 'type': 'str'},
16302    }
16303
16304    def __init__(
16305        self,
16306        **kwargs
16307    ):
16308        super(TriggeredJobRun, self).__init__(**kwargs)
16309        self.web_job_id = kwargs.get('web_job_id', None)
16310        self.web_job_name = kwargs.get('web_job_name', None)
16311        self.status = kwargs.get('status', None)
16312        self.start_time = kwargs.get('start_time', None)
16313        self.end_time = kwargs.get('end_time', None)
16314        self.duration = kwargs.get('duration', None)
16315        self.output_url = kwargs.get('output_url', None)
16316        self.error_url = kwargs.get('error_url', None)
16317        self.url = kwargs.get('url', None)
16318        self.job_name = kwargs.get('job_name', None)
16319        self.trigger = kwargs.get('trigger', None)
16320
16321
16322class TriggeredWebJob(ProxyOnlyResource):
16323    """Triggered Web Job Information.
16324
16325    Variables are only populated by the server, and will be ignored when sending a request.
16326
16327    :ivar id: Resource Id.
16328    :vartype id: str
16329    :ivar name: Resource Name.
16330    :vartype name: str
16331    :param kind: Kind of resource.
16332    :type kind: str
16333    :ivar type: Resource type.
16334    :vartype type: str
16335    :ivar system_data: The system metadata relating to this resource.
16336    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16337    :param latest_run: Latest job run information.
16338    :type latest_run: ~azure.mgmt.web.v2020_09_01.models.TriggeredJobRun
16339    :param history_url: History URL.
16340    :type history_url: str
16341    :param scheduler_logs_url: Scheduler Logs URL.
16342    :type scheduler_logs_url: str
16343    :param run_command: Run command.
16344    :type run_command: str
16345    :param url: Job URL.
16346    :type url: str
16347    :param extra_info_url: Extra Info URL.
16348    :type extra_info_url: str
16349    :param web_job_type: Job type. Possible values include: "Continuous", "Triggered".
16350    :type web_job_type: str or ~azure.mgmt.web.v2020_09_01.models.WebJobType
16351    :param error: Error information.
16352    :type error: str
16353    :param using_sdk: Using SDK?.
16354    :type using_sdk: bool
16355    :param settings: Job settings.
16356    :type settings: dict[str, any]
16357    """
16358
16359    _validation = {
16360        'id': {'readonly': True},
16361        'name': {'readonly': True},
16362        'type': {'readonly': True},
16363        'system_data': {'readonly': True},
16364    }
16365
16366    _attribute_map = {
16367        'id': {'key': 'id', 'type': 'str'},
16368        'name': {'key': 'name', 'type': 'str'},
16369        'kind': {'key': 'kind', 'type': 'str'},
16370        'type': {'key': 'type', 'type': 'str'},
16371        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16372        'latest_run': {'key': 'properties.latest_run', 'type': 'TriggeredJobRun'},
16373        'history_url': {'key': 'properties.history_url', 'type': 'str'},
16374        'scheduler_logs_url': {'key': 'properties.scheduler_logs_url', 'type': 'str'},
16375        'run_command': {'key': 'properties.run_command', 'type': 'str'},
16376        'url': {'key': 'properties.url', 'type': 'str'},
16377        'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'},
16378        'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'},
16379        'error': {'key': 'properties.error', 'type': 'str'},
16380        'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'},
16381        'settings': {'key': 'properties.settings', 'type': '{object}'},
16382    }
16383
16384    def __init__(
16385        self,
16386        **kwargs
16387    ):
16388        super(TriggeredWebJob, self).__init__(**kwargs)
16389        self.latest_run = kwargs.get('latest_run', None)
16390        self.history_url = kwargs.get('history_url', None)
16391        self.scheduler_logs_url = kwargs.get('scheduler_logs_url', None)
16392        self.run_command = kwargs.get('run_command', None)
16393        self.url = kwargs.get('url', None)
16394        self.extra_info_url = kwargs.get('extra_info_url', None)
16395        self.web_job_type = kwargs.get('web_job_type', None)
16396        self.error = kwargs.get('error', None)
16397        self.using_sdk = kwargs.get('using_sdk', None)
16398        self.settings = kwargs.get('settings', None)
16399
16400
16401class TriggeredWebJobCollection(msrest.serialization.Model):
16402    """Collection of Kudu continuous web job information elements.
16403
16404    Variables are only populated by the server, and will be ignored when sending a request.
16405
16406    All required parameters must be populated in order to send to Azure.
16407
16408    :param value: Required. Collection of resources.
16409    :type value: list[~azure.mgmt.web.v2020_09_01.models.TriggeredWebJob]
16410    :ivar next_link: Link to next page of resources.
16411    :vartype next_link: str
16412    """
16413
16414    _validation = {
16415        'value': {'required': True},
16416        'next_link': {'readonly': True},
16417    }
16418
16419    _attribute_map = {
16420        'value': {'key': 'value', 'type': '[TriggeredWebJob]'},
16421        'next_link': {'key': 'nextLink', 'type': 'str'},
16422    }
16423
16424    def __init__(
16425        self,
16426        **kwargs
16427    ):
16428        super(TriggeredWebJobCollection, self).__init__(**kwargs)
16429        self.value = kwargs['value']
16430        self.next_link = None
16431
16432
16433class Twitter(ProxyOnlyResource):
16434    """Twitter.
16435
16436    Variables are only populated by the server, and will be ignored when sending a request.
16437
16438    :ivar id: Resource Id.
16439    :vartype id: str
16440    :ivar name: Resource Name.
16441    :vartype name: str
16442    :param kind: Kind of resource.
16443    :type kind: str
16444    :ivar type: Resource type.
16445    :vartype type: str
16446    :ivar system_data: The system metadata relating to this resource.
16447    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16448    :param enabled:
16449    :type enabled: bool
16450    :param registration:
16451    :type registration: ~azure.mgmt.web.v2020_09_01.models.TwitterRegistration
16452    """
16453
16454    _validation = {
16455        'id': {'readonly': True},
16456        'name': {'readonly': True},
16457        'type': {'readonly': True},
16458        'system_data': {'readonly': True},
16459    }
16460
16461    _attribute_map = {
16462        'id': {'key': 'id', 'type': 'str'},
16463        'name': {'key': 'name', 'type': 'str'},
16464        'kind': {'key': 'kind', 'type': 'str'},
16465        'type': {'key': 'type', 'type': 'str'},
16466        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16467        'enabled': {'key': 'properties.enabled', 'type': 'bool'},
16468        'registration': {'key': 'properties.registration', 'type': 'TwitterRegistration'},
16469    }
16470
16471    def __init__(
16472        self,
16473        **kwargs
16474    ):
16475        super(Twitter, self).__init__(**kwargs)
16476        self.enabled = kwargs.get('enabled', None)
16477        self.registration = kwargs.get('registration', None)
16478
16479
16480class TwitterRegistration(ProxyOnlyResource):
16481    """TwitterRegistration.
16482
16483    Variables are only populated by the server, and will be ignored when sending a request.
16484
16485    :ivar id: Resource Id.
16486    :vartype id: str
16487    :ivar name: Resource Name.
16488    :vartype name: str
16489    :param kind: Kind of resource.
16490    :type kind: str
16491    :ivar type: Resource type.
16492    :vartype type: str
16493    :ivar system_data: The system metadata relating to this resource.
16494    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16495    :param consumer_key:
16496    :type consumer_key: str
16497    :param consumer_secret_setting_name:
16498    :type consumer_secret_setting_name: str
16499    """
16500
16501    _validation = {
16502        'id': {'readonly': True},
16503        'name': {'readonly': True},
16504        'type': {'readonly': True},
16505        'system_data': {'readonly': True},
16506    }
16507
16508    _attribute_map = {
16509        'id': {'key': 'id', 'type': 'str'},
16510        'name': {'key': 'name', 'type': 'str'},
16511        'kind': {'key': 'kind', 'type': 'str'},
16512        'type': {'key': 'type', 'type': 'str'},
16513        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16514        'consumer_key': {'key': 'properties.consumerKey', 'type': 'str'},
16515        'consumer_secret_setting_name': {'key': 'properties.consumerSecretSettingName', 'type': 'str'},
16516    }
16517
16518    def __init__(
16519        self,
16520        **kwargs
16521    ):
16522        super(TwitterRegistration, self).__init__(**kwargs)
16523        self.consumer_key = kwargs.get('consumer_key', None)
16524        self.consumer_secret_setting_name = kwargs.get('consumer_secret_setting_name', None)
16525
16526
16527class Usage(ProxyOnlyResource):
16528    """Usage of the quota resource.
16529
16530    Variables are only populated by the server, and will be ignored when sending a request.
16531
16532    :ivar id: Resource Id.
16533    :vartype id: str
16534    :ivar name: Resource Name.
16535    :vartype name: str
16536    :param kind: Kind of resource.
16537    :type kind: str
16538    :ivar type: Resource type.
16539    :vartype type: str
16540    :ivar system_data: The system metadata relating to this resource.
16541    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16542    :ivar display_name: Friendly name shown in the UI.
16543    :vartype display_name: str
16544    :ivar resource_name: Name of the quota resource.
16545    :vartype resource_name: str
16546    :ivar unit: Units of measurement for the quota resource.
16547    :vartype unit: str
16548    :ivar current_value: The current value of the resource counter.
16549    :vartype current_value: long
16550    :ivar limit: The resource limit.
16551    :vartype limit: long
16552    :ivar next_reset_time: Next reset time for the resource counter.
16553    :vartype next_reset_time: ~datetime.datetime
16554    :ivar compute_mode: Compute mode used for this usage. Possible values include: "Shared",
16555     "Dedicated", "Dynamic".
16556    :vartype compute_mode: str or ~azure.mgmt.web.v2020_09_01.models.ComputeModeOptions
16557    :ivar site_mode: Site mode used for this usage.
16558    :vartype site_mode: str
16559    """
16560
16561    _validation = {
16562        'id': {'readonly': True},
16563        'name': {'readonly': True},
16564        'type': {'readonly': True},
16565        'system_data': {'readonly': True},
16566        'display_name': {'readonly': True},
16567        'resource_name': {'readonly': True},
16568        'unit': {'readonly': True},
16569        'current_value': {'readonly': True},
16570        'limit': {'readonly': True},
16571        'next_reset_time': {'readonly': True},
16572        'compute_mode': {'readonly': True},
16573        'site_mode': {'readonly': True},
16574    }
16575
16576    _attribute_map = {
16577        'id': {'key': 'id', 'type': 'str'},
16578        'name': {'key': 'name', 'type': 'str'},
16579        'kind': {'key': 'kind', 'type': 'str'},
16580        'type': {'key': 'type', 'type': 'str'},
16581        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16582        'display_name': {'key': 'properties.displayName', 'type': 'str'},
16583        'resource_name': {'key': 'properties.resourceName', 'type': 'str'},
16584        'unit': {'key': 'properties.unit', 'type': 'str'},
16585        'current_value': {'key': 'properties.currentValue', 'type': 'long'},
16586        'limit': {'key': 'properties.limit', 'type': 'long'},
16587        'next_reset_time': {'key': 'properties.nextResetTime', 'type': 'iso-8601'},
16588        'compute_mode': {'key': 'properties.computeMode', 'type': 'str'},
16589        'site_mode': {'key': 'properties.siteMode', 'type': 'str'},
16590    }
16591
16592    def __init__(
16593        self,
16594        **kwargs
16595    ):
16596        super(Usage, self).__init__(**kwargs)
16597        self.display_name = None
16598        self.resource_name = None
16599        self.unit = None
16600        self.current_value = None
16601        self.limit = None
16602        self.next_reset_time = None
16603        self.compute_mode = None
16604        self.site_mode = None
16605
16606
16607class UsageCollection(msrest.serialization.Model):
16608    """Collection of usages.
16609
16610    Variables are only populated by the server, and will be ignored when sending a request.
16611
16612    All required parameters must be populated in order to send to Azure.
16613
16614    :param value: Required. Collection of resources.
16615    :type value: list[~azure.mgmt.web.v2020_09_01.models.Usage]
16616    :ivar next_link: Link to next page of resources.
16617    :vartype next_link: str
16618    """
16619
16620    _validation = {
16621        'value': {'required': True},
16622        'next_link': {'readonly': True},
16623    }
16624
16625    _attribute_map = {
16626        'value': {'key': 'value', 'type': '[Usage]'},
16627        'next_link': {'key': 'nextLink', 'type': 'str'},
16628    }
16629
16630    def __init__(
16631        self,
16632        **kwargs
16633    ):
16634        super(UsageCollection, self).__init__(**kwargs)
16635        self.value = kwargs['value']
16636        self.next_link = None
16637
16638
16639class User(ProxyOnlyResource):
16640    """User credentials used for publishing activity.
16641
16642    Variables are only populated by the server, and will be ignored when sending a request.
16643
16644    :ivar id: Resource Id.
16645    :vartype id: str
16646    :ivar name: Resource Name.
16647    :vartype name: str
16648    :param kind: Kind of resource.
16649    :type kind: str
16650    :ivar type: Resource type.
16651    :vartype type: str
16652    :ivar system_data: The system metadata relating to this resource.
16653    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16654    :param publishing_user_name: Username used for publishing.
16655    :type publishing_user_name: str
16656    :param publishing_password: Password used for publishing.
16657    :type publishing_password: str
16658    :param publishing_password_hash: Password hash used for publishing.
16659    :type publishing_password_hash: str
16660    :param publishing_password_hash_salt: Password hash salt used for publishing.
16661    :type publishing_password_hash_salt: str
16662    :param scm_uri: Url of SCM site.
16663    :type scm_uri: str
16664    """
16665
16666    _validation = {
16667        'id': {'readonly': True},
16668        'name': {'readonly': True},
16669        'type': {'readonly': True},
16670        'system_data': {'readonly': True},
16671    }
16672
16673    _attribute_map = {
16674        'id': {'key': 'id', 'type': 'str'},
16675        'name': {'key': 'name', 'type': 'str'},
16676        'kind': {'key': 'kind', 'type': 'str'},
16677        'type': {'key': 'type', 'type': 'str'},
16678        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16679        'publishing_user_name': {'key': 'properties.publishingUserName', 'type': 'str'},
16680        'publishing_password': {'key': 'properties.publishingPassword', 'type': 'str'},
16681        'publishing_password_hash': {'key': 'properties.publishingPasswordHash', 'type': 'str'},
16682        'publishing_password_hash_salt': {'key': 'properties.publishingPasswordHashSalt', 'type': 'str'},
16683        'scm_uri': {'key': 'properties.scmUri', 'type': 'str'},
16684    }
16685
16686    def __init__(
16687        self,
16688        **kwargs
16689    ):
16690        super(User, self).__init__(**kwargs)
16691        self.publishing_user_name = kwargs.get('publishing_user_name', None)
16692        self.publishing_password = kwargs.get('publishing_password', None)
16693        self.publishing_password_hash = kwargs.get('publishing_password_hash', None)
16694        self.publishing_password_hash_salt = kwargs.get('publishing_password_hash_salt', None)
16695        self.scm_uri = kwargs.get('scm_uri', None)
16696
16697
16698class ValidateRequest(msrest.serialization.Model):
16699    """Resource validation request content.
16700
16701    All required parameters must be populated in order to send to Azure.
16702
16703    :param name: Required. Resource name to verify.
16704    :type name: str
16705    :param type: Required. Resource type used for verification. Possible values include:
16706     "ServerFarm", "Site".
16707    :type type: str or ~azure.mgmt.web.v2020_09_01.models.ValidateResourceTypes
16708    :param location: Required. Expected location of the resource.
16709    :type location: str
16710    :param server_farm_id: ARM resource ID of an App Service plan that would host the app.
16711    :type server_farm_id: str
16712    :param sku_name: Name of the target SKU for the App Service plan.
16713    :type sku_name: str
16714    :param need_linux_workers: :code:`<code>true</code>` if App Service plan is for Linux workers;
16715     otherwise, :code:`<code>false</code>`.
16716    :type need_linux_workers: bool
16717    :param is_spot: :code:`<code>true</code>` if App Service plan is for Spot instances; otherwise,
16718     :code:`<code>false</code>`.
16719    :type is_spot: bool
16720    :param capacity: Target capacity of the App Service plan (number of VMs).
16721    :type capacity: int
16722    :param hosting_environment: Name of App Service Environment where app or App Service plan
16723     should be created.
16724    :type hosting_environment: str
16725    :param is_xenon: :code:`<code>true</code>` if App Service plan is running as a windows
16726     container.
16727    :type is_xenon: bool
16728    :param container_registry_base_url: Base URL of the container registry.
16729    :type container_registry_base_url: str
16730    :param container_registry_username: Username for to access the container registry.
16731    :type container_registry_username: str
16732    :param container_registry_password: Password for to access the container registry.
16733    :type container_registry_password: str
16734    :param container_image_repository: Repository name (image name).
16735    :type container_image_repository: str
16736    :param container_image_tag: Image tag.
16737    :type container_image_tag: str
16738    :param container_image_platform: Platform (windows or linux).
16739    :type container_image_platform: str
16740    """
16741
16742    _validation = {
16743        'name': {'required': True},
16744        'type': {'required': True},
16745        'location': {'required': True},
16746        'capacity': {'minimum': 1},
16747    }
16748
16749    _attribute_map = {
16750        'name': {'key': 'name', 'type': 'str'},
16751        'type': {'key': 'type', 'type': 'str'},
16752        'location': {'key': 'location', 'type': 'str'},
16753        'server_farm_id': {'key': 'properties.serverFarmId', 'type': 'str'},
16754        'sku_name': {'key': 'properties.skuName', 'type': 'str'},
16755        'need_linux_workers': {'key': 'properties.needLinuxWorkers', 'type': 'bool'},
16756        'is_spot': {'key': 'properties.isSpot', 'type': 'bool'},
16757        'capacity': {'key': 'properties.capacity', 'type': 'int'},
16758        'hosting_environment': {'key': 'properties.hostingEnvironment', 'type': 'str'},
16759        'is_xenon': {'key': 'properties.isXenon', 'type': 'bool'},
16760        'container_registry_base_url': {'key': 'properties.containerRegistryBaseUrl', 'type': 'str'},
16761        'container_registry_username': {'key': 'properties.containerRegistryUsername', 'type': 'str'},
16762        'container_registry_password': {'key': 'properties.containerRegistryPassword', 'type': 'str'},
16763        'container_image_repository': {'key': 'properties.containerImageRepository', 'type': 'str'},
16764        'container_image_tag': {'key': 'properties.containerImageTag', 'type': 'str'},
16765        'container_image_platform': {'key': 'properties.containerImagePlatform', 'type': 'str'},
16766    }
16767
16768    def __init__(
16769        self,
16770        **kwargs
16771    ):
16772        super(ValidateRequest, self).__init__(**kwargs)
16773        self.name = kwargs['name']
16774        self.type = kwargs['type']
16775        self.location = kwargs['location']
16776        self.server_farm_id = kwargs.get('server_farm_id', None)
16777        self.sku_name = kwargs.get('sku_name', None)
16778        self.need_linux_workers = kwargs.get('need_linux_workers', None)
16779        self.is_spot = kwargs.get('is_spot', None)
16780        self.capacity = kwargs.get('capacity', None)
16781        self.hosting_environment = kwargs.get('hosting_environment', None)
16782        self.is_xenon = kwargs.get('is_xenon', None)
16783        self.container_registry_base_url = kwargs.get('container_registry_base_url', None)
16784        self.container_registry_username = kwargs.get('container_registry_username', None)
16785        self.container_registry_password = kwargs.get('container_registry_password', None)
16786        self.container_image_repository = kwargs.get('container_image_repository', None)
16787        self.container_image_tag = kwargs.get('container_image_tag', None)
16788        self.container_image_platform = kwargs.get('container_image_platform', None)
16789
16790
16791class ValidateResponse(msrest.serialization.Model):
16792    """Describes the result of resource validation.
16793
16794    :param status: Result of validation.
16795    :type status: str
16796    :param error: Error details for the case when validation fails.
16797    :type error: ~azure.mgmt.web.v2020_09_01.models.ValidateResponseError
16798    """
16799
16800    _attribute_map = {
16801        'status': {'key': 'status', 'type': 'str'},
16802        'error': {'key': 'error', 'type': 'ValidateResponseError'},
16803    }
16804
16805    def __init__(
16806        self,
16807        **kwargs
16808    ):
16809        super(ValidateResponse, self).__init__(**kwargs)
16810        self.status = kwargs.get('status', None)
16811        self.error = kwargs.get('error', None)
16812
16813
16814class ValidateResponseError(msrest.serialization.Model):
16815    """Error details for when validation fails.
16816
16817    :param code: Validation error code.
16818    :type code: str
16819    :param message: Validation error message.
16820    :type message: str
16821    """
16822
16823    _attribute_map = {
16824        'code': {'key': 'code', 'type': 'str'},
16825        'message': {'key': 'message', 'type': 'str'},
16826    }
16827
16828    def __init__(
16829        self,
16830        **kwargs
16831    ):
16832        super(ValidateResponseError, self).__init__(**kwargs)
16833        self.code = kwargs.get('code', None)
16834        self.message = kwargs.get('message', None)
16835
16836
16837class VirtualApplication(msrest.serialization.Model):
16838    """Virtual application in an app.
16839
16840    :param virtual_path: Virtual path.
16841    :type virtual_path: str
16842    :param physical_path: Physical path.
16843    :type physical_path: str
16844    :param preload_enabled: :code:`<code>true</code>` if preloading is enabled; otherwise,
16845     :code:`<code>false</code>`.
16846    :type preload_enabled: bool
16847    :param virtual_directories: Virtual directories for virtual application.
16848    :type virtual_directories: list[~azure.mgmt.web.v2020_09_01.models.VirtualDirectory]
16849    """
16850
16851    _attribute_map = {
16852        'virtual_path': {'key': 'virtualPath', 'type': 'str'},
16853        'physical_path': {'key': 'physicalPath', 'type': 'str'},
16854        'preload_enabled': {'key': 'preloadEnabled', 'type': 'bool'},
16855        'virtual_directories': {'key': 'virtualDirectories', 'type': '[VirtualDirectory]'},
16856    }
16857
16858    def __init__(
16859        self,
16860        **kwargs
16861    ):
16862        super(VirtualApplication, self).__init__(**kwargs)
16863        self.virtual_path = kwargs.get('virtual_path', None)
16864        self.physical_path = kwargs.get('physical_path', None)
16865        self.preload_enabled = kwargs.get('preload_enabled', None)
16866        self.virtual_directories = kwargs.get('virtual_directories', None)
16867
16868
16869class VirtualDirectory(msrest.serialization.Model):
16870    """Directory for virtual application.
16871
16872    :param virtual_path: Path to virtual application.
16873    :type virtual_path: str
16874    :param physical_path: Physical path.
16875    :type physical_path: str
16876    """
16877
16878    _attribute_map = {
16879        'virtual_path': {'key': 'virtualPath', 'type': 'str'},
16880        'physical_path': {'key': 'physicalPath', 'type': 'str'},
16881    }
16882
16883    def __init__(
16884        self,
16885        **kwargs
16886    ):
16887        super(VirtualDirectory, self).__init__(**kwargs)
16888        self.virtual_path = kwargs.get('virtual_path', None)
16889        self.physical_path = kwargs.get('physical_path', None)
16890
16891
16892class VirtualIPMapping(msrest.serialization.Model):
16893    """Virtual IP mapping.
16894
16895    :param virtual_ip: Virtual IP address.
16896    :type virtual_ip: str
16897    :param internal_http_port: Internal HTTP port.
16898    :type internal_http_port: int
16899    :param internal_https_port: Internal HTTPS port.
16900    :type internal_https_port: int
16901    :param in_use: Is virtual IP mapping in use.
16902    :type in_use: bool
16903    :param service_name: name of the service that virtual IP is assigned to.
16904    :type service_name: str
16905    """
16906
16907    _attribute_map = {
16908        'virtual_ip': {'key': 'virtualIP', 'type': 'str'},
16909        'internal_http_port': {'key': 'internalHttpPort', 'type': 'int'},
16910        'internal_https_port': {'key': 'internalHttpsPort', 'type': 'int'},
16911        'in_use': {'key': 'inUse', 'type': 'bool'},
16912        'service_name': {'key': 'serviceName', 'type': 'str'},
16913    }
16914
16915    def __init__(
16916        self,
16917        **kwargs
16918    ):
16919        super(VirtualIPMapping, self).__init__(**kwargs)
16920        self.virtual_ip = kwargs.get('virtual_ip', None)
16921        self.internal_http_port = kwargs.get('internal_http_port', None)
16922        self.internal_https_port = kwargs.get('internal_https_port', None)
16923        self.in_use = kwargs.get('in_use', None)
16924        self.service_name = kwargs.get('service_name', None)
16925
16926
16927class VirtualNetworkProfile(msrest.serialization.Model):
16928    """Specification for using a Virtual Network.
16929
16930    Variables are only populated by the server, and will be ignored when sending a request.
16931
16932    :param id: Resource id of the Virtual Network.
16933    :type id: str
16934    :ivar name: Name of the Virtual Network (read-only).
16935    :vartype name: str
16936    :ivar type: Resource type of the Virtual Network (read-only).
16937    :vartype type: str
16938    :param subnet: Subnet within the Virtual Network.
16939    :type subnet: str
16940    """
16941
16942    _validation = {
16943        'name': {'readonly': True},
16944        'type': {'readonly': True},
16945    }
16946
16947    _attribute_map = {
16948        'id': {'key': 'id', 'type': 'str'},
16949        'name': {'key': 'name', 'type': 'str'},
16950        'type': {'key': 'type', 'type': 'str'},
16951        'subnet': {'key': 'subnet', 'type': 'str'},
16952    }
16953
16954    def __init__(
16955        self,
16956        **kwargs
16957    ):
16958        super(VirtualNetworkProfile, self).__init__(**kwargs)
16959        self.id = kwargs.get('id', None)
16960        self.name = None
16961        self.type = None
16962        self.subnet = kwargs.get('subnet', None)
16963
16964
16965class VnetGateway(ProxyOnlyResource):
16966    """The Virtual Network gateway contract. This is used to give the Virtual Network gateway access to the VPN package.
16967
16968    Variables are only populated by the server, and will be ignored when sending a request.
16969
16970    :ivar id: Resource Id.
16971    :vartype id: str
16972    :ivar name: Resource Name.
16973    :vartype name: str
16974    :param kind: Kind of resource.
16975    :type kind: str
16976    :ivar type: Resource type.
16977    :vartype type: str
16978    :ivar system_data: The system metadata relating to this resource.
16979    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
16980    :param vnet_name: The Virtual Network name.
16981    :type vnet_name: str
16982    :param vpn_package_uri: The URI where the VPN package can be downloaded.
16983    :type vpn_package_uri: str
16984    """
16985
16986    _validation = {
16987        'id': {'readonly': True},
16988        'name': {'readonly': True},
16989        'type': {'readonly': True},
16990        'system_data': {'readonly': True},
16991    }
16992
16993    _attribute_map = {
16994        'id': {'key': 'id', 'type': 'str'},
16995        'name': {'key': 'name', 'type': 'str'},
16996        'kind': {'key': 'kind', 'type': 'str'},
16997        'type': {'key': 'type', 'type': 'str'},
16998        'system_data': {'key': 'systemData', 'type': 'SystemData'},
16999        'vnet_name': {'key': 'properties.vnetName', 'type': 'str'},
17000        'vpn_package_uri': {'key': 'properties.vpnPackageUri', 'type': 'str'},
17001    }
17002
17003    def __init__(
17004        self,
17005        **kwargs
17006    ):
17007        super(VnetGateway, self).__init__(**kwargs)
17008        self.vnet_name = kwargs.get('vnet_name', None)
17009        self.vpn_package_uri = kwargs.get('vpn_package_uri', None)
17010
17011
17012class VnetInfo(ProxyOnlyResource):
17013    """Virtual Network information contract.
17014
17015    Variables are only populated by the server, and will be ignored when sending a request.
17016
17017    :ivar id: Resource Id.
17018    :vartype id: str
17019    :ivar name: Resource Name.
17020    :vartype name: str
17021    :param kind: Kind of resource.
17022    :type kind: str
17023    :ivar type: Resource type.
17024    :vartype type: str
17025    :ivar system_data: The system metadata relating to this resource.
17026    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17027    :param vnet_resource_id: The Virtual Network's resource ID.
17028    :type vnet_resource_id: str
17029    :ivar cert_thumbprint: The client certificate thumbprint.
17030    :vartype cert_thumbprint: str
17031    :param cert_blob: A certificate file (.cer) blob containing the public key of the private key
17032     used to authenticate a
17033     Point-To-Site VPN connection.
17034    :type cert_blob: str
17035    :ivar routes: The routes that this Virtual Network connection uses.
17036    :vartype routes: list[~azure.mgmt.web.v2020_09_01.models.VnetRoute]
17037    :ivar resync_required: :code:`<code>true</code>` if a resync is required; otherwise,
17038     :code:`<code>false</code>`.
17039    :vartype resync_required: bool
17040    :param dns_servers: DNS servers to be used by this Virtual Network. This should be a
17041     comma-separated list of IP addresses.
17042    :type dns_servers: str
17043    :param is_swift: Flag that is used to denote if this is VNET injection.
17044    :type is_swift: bool
17045    """
17046
17047    _validation = {
17048        'id': {'readonly': True},
17049        'name': {'readonly': True},
17050        'type': {'readonly': True},
17051        'system_data': {'readonly': True},
17052        'cert_thumbprint': {'readonly': True},
17053        'routes': {'readonly': True},
17054        'resync_required': {'readonly': True},
17055    }
17056
17057    _attribute_map = {
17058        'id': {'key': 'id', 'type': 'str'},
17059        'name': {'key': 'name', 'type': 'str'},
17060        'kind': {'key': 'kind', 'type': 'str'},
17061        'type': {'key': 'type', 'type': 'str'},
17062        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17063        'vnet_resource_id': {'key': 'properties.vnetResourceId', 'type': 'str'},
17064        'cert_thumbprint': {'key': 'properties.certThumbprint', 'type': 'str'},
17065        'cert_blob': {'key': 'properties.certBlob', 'type': 'str'},
17066        'routes': {'key': 'properties.routes', 'type': '[VnetRoute]'},
17067        'resync_required': {'key': 'properties.resyncRequired', 'type': 'bool'},
17068        'dns_servers': {'key': 'properties.dnsServers', 'type': 'str'},
17069        'is_swift': {'key': 'properties.isSwift', 'type': 'bool'},
17070    }
17071
17072    def __init__(
17073        self,
17074        **kwargs
17075    ):
17076        super(VnetInfo, self).__init__(**kwargs)
17077        self.vnet_resource_id = kwargs.get('vnet_resource_id', None)
17078        self.cert_thumbprint = None
17079        self.cert_blob = kwargs.get('cert_blob', None)
17080        self.routes = None
17081        self.resync_required = None
17082        self.dns_servers = kwargs.get('dns_servers', None)
17083        self.is_swift = kwargs.get('is_swift', None)
17084
17085
17086class VnetParameters(ProxyOnlyResource):
17087    """The required set of inputs to validate a VNET.
17088
17089    Variables are only populated by the server, and will be ignored when sending a request.
17090
17091    :ivar id: Resource Id.
17092    :vartype id: str
17093    :ivar name: Resource Name.
17094    :vartype name: str
17095    :param kind: Kind of resource.
17096    :type kind: str
17097    :ivar type: Resource type.
17098    :vartype type: str
17099    :ivar system_data: The system metadata relating to this resource.
17100    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17101    :param vnet_resource_group: The Resource Group of the VNET to be validated.
17102    :type vnet_resource_group: str
17103    :param vnet_name: The name of the VNET to be validated.
17104    :type vnet_name: str
17105    :param vnet_subnet_name: The subnet name to be validated.
17106    :type vnet_subnet_name: str
17107    """
17108
17109    _validation = {
17110        'id': {'readonly': True},
17111        'name': {'readonly': True},
17112        'type': {'readonly': True},
17113        'system_data': {'readonly': True},
17114    }
17115
17116    _attribute_map = {
17117        'id': {'key': 'id', 'type': 'str'},
17118        'name': {'key': 'name', 'type': 'str'},
17119        'kind': {'key': 'kind', 'type': 'str'},
17120        'type': {'key': 'type', 'type': 'str'},
17121        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17122        'vnet_resource_group': {'key': 'properties.vnetResourceGroup', 'type': 'str'},
17123        'vnet_name': {'key': 'properties.vnetName', 'type': 'str'},
17124        'vnet_subnet_name': {'key': 'properties.vnetSubnetName', 'type': 'str'},
17125    }
17126
17127    def __init__(
17128        self,
17129        **kwargs
17130    ):
17131        super(VnetParameters, self).__init__(**kwargs)
17132        self.vnet_resource_group = kwargs.get('vnet_resource_group', None)
17133        self.vnet_name = kwargs.get('vnet_name', None)
17134        self.vnet_subnet_name = kwargs.get('vnet_subnet_name', None)
17135
17136
17137class VnetRoute(ProxyOnlyResource):
17138    """Virtual Network route contract used to pass routing information for a Virtual Network.
17139
17140    Variables are only populated by the server, and will be ignored when sending a request.
17141
17142    :ivar id: Resource Id.
17143    :vartype id: str
17144    :ivar name: Resource Name.
17145    :vartype name: str
17146    :param kind: Kind of resource.
17147    :type kind: str
17148    :ivar type: Resource type.
17149    :vartype type: str
17150    :ivar system_data: The system metadata relating to this resource.
17151    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17152    :param start_address: The starting address for this route. This may also include a CIDR
17153     notation, in which case the end address must not be specified.
17154    :type start_address: str
17155    :param end_address: The ending address for this route. If the start address is specified in
17156     CIDR notation, this must be omitted.
17157    :type end_address: str
17158    :param route_type: The type of route this is:
17159     DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
17160     INHERITED - Routes inherited from the real Virtual Network routes
17161     STATIC - Static route set on the app only
17162
17163     These values will be used for syncing an app's routes with those from a Virtual Network.
17164     Possible values include: "DEFAULT", "INHERITED", "STATIC".
17165    :type route_type: str or ~azure.mgmt.web.v2020_09_01.models.RouteType
17166    """
17167
17168    _validation = {
17169        'id': {'readonly': True},
17170        'name': {'readonly': True},
17171        'type': {'readonly': True},
17172        'system_data': {'readonly': True},
17173    }
17174
17175    _attribute_map = {
17176        'id': {'key': 'id', 'type': 'str'},
17177        'name': {'key': 'name', 'type': 'str'},
17178        'kind': {'key': 'kind', 'type': 'str'},
17179        'type': {'key': 'type', 'type': 'str'},
17180        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17181        'start_address': {'key': 'properties.startAddress', 'type': 'str'},
17182        'end_address': {'key': 'properties.endAddress', 'type': 'str'},
17183        'route_type': {'key': 'properties.routeType', 'type': 'str'},
17184    }
17185
17186    def __init__(
17187        self,
17188        **kwargs
17189    ):
17190        super(VnetRoute, self).__init__(**kwargs)
17191        self.start_address = kwargs.get('start_address', None)
17192        self.end_address = kwargs.get('end_address', None)
17193        self.route_type = kwargs.get('route_type', None)
17194
17195
17196class VnetValidationFailureDetails(ProxyOnlyResource):
17197    """A class that describes the reason for a validation failure.
17198
17199    Variables are only populated by the server, and will be ignored when sending a request.
17200
17201    :ivar id: Resource Id.
17202    :vartype id: str
17203    :ivar name: Resource Name.
17204    :vartype name: str
17205    :param kind: Kind of resource.
17206    :type kind: str
17207    :ivar type: Resource type.
17208    :vartype type: str
17209    :ivar system_data: The system metadata relating to this resource.
17210    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17211    :param failed: A flag describing whether or not validation failed.
17212    :type failed: bool
17213    :param failed_tests: A list of tests that failed in the validation.
17214    :type failed_tests: list[~azure.mgmt.web.v2020_09_01.models.VnetValidationTestFailure]
17215    """
17216
17217    _validation = {
17218        'id': {'readonly': True},
17219        'name': {'readonly': True},
17220        'type': {'readonly': True},
17221        'system_data': {'readonly': True},
17222    }
17223
17224    _attribute_map = {
17225        'id': {'key': 'id', 'type': 'str'},
17226        'name': {'key': 'name', 'type': 'str'},
17227        'kind': {'key': 'kind', 'type': 'str'},
17228        'type': {'key': 'type', 'type': 'str'},
17229        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17230        'failed': {'key': 'properties.failed', 'type': 'bool'},
17231        'failed_tests': {'key': 'properties.failedTests', 'type': '[VnetValidationTestFailure]'},
17232    }
17233
17234    def __init__(
17235        self,
17236        **kwargs
17237    ):
17238        super(VnetValidationFailureDetails, self).__init__(**kwargs)
17239        self.failed = kwargs.get('failed', None)
17240        self.failed_tests = kwargs.get('failed_tests', None)
17241
17242
17243class VnetValidationTestFailure(ProxyOnlyResource):
17244    """A class that describes a test that failed during NSG and UDR validation.
17245
17246    Variables are only populated by the server, and will be ignored when sending a request.
17247
17248    :ivar id: Resource Id.
17249    :vartype id: str
17250    :ivar name: Resource Name.
17251    :vartype name: str
17252    :param kind: Kind of resource.
17253    :type kind: str
17254    :ivar type: Resource type.
17255    :vartype type: str
17256    :ivar system_data: The system metadata relating to this resource.
17257    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17258    :param test_name: The name of the test that failed.
17259    :type test_name: str
17260    :param details: The details of what caused the failure, e.g. the blocking rule name, etc.
17261    :type details: str
17262    """
17263
17264    _validation = {
17265        'id': {'readonly': True},
17266        'name': {'readonly': True},
17267        'type': {'readonly': True},
17268        'system_data': {'readonly': True},
17269    }
17270
17271    _attribute_map = {
17272        'id': {'key': 'id', 'type': 'str'},
17273        'name': {'key': 'name', 'type': 'str'},
17274        'kind': {'key': 'kind', 'type': 'str'},
17275        'type': {'key': 'type', 'type': 'str'},
17276        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17277        'test_name': {'key': 'properties.testName', 'type': 'str'},
17278        'details': {'key': 'properties.details', 'type': 'str'},
17279    }
17280
17281    def __init__(
17282        self,
17283        **kwargs
17284    ):
17285        super(VnetValidationTestFailure, self).__init__(**kwargs)
17286        self.test_name = kwargs.get('test_name', None)
17287        self.details = kwargs.get('details', None)
17288
17289
17290class WebAppCollection(msrest.serialization.Model):
17291    """Collection of App Service apps.
17292
17293    Variables are only populated by the server, and will be ignored when sending a request.
17294
17295    All required parameters must be populated in order to send to Azure.
17296
17297    :param value: Required. Collection of resources.
17298    :type value: list[~azure.mgmt.web.v2020_09_01.models.Site]
17299    :ivar next_link: Link to next page of resources.
17300    :vartype next_link: str
17301    """
17302
17303    _validation = {
17304        'value': {'required': True},
17305        'next_link': {'readonly': True},
17306    }
17307
17308    _attribute_map = {
17309        'value': {'key': 'value', 'type': '[Site]'},
17310        'next_link': {'key': 'nextLink', 'type': 'str'},
17311    }
17312
17313    def __init__(
17314        self,
17315        **kwargs
17316    ):
17317        super(WebAppCollection, self).__init__(**kwargs)
17318        self.value = kwargs['value']
17319        self.next_link = None
17320
17321
17322class WebAppInstanceStatusCollection(msrest.serialization.Model):
17323    """Collection of app instances.
17324
17325    Variables are only populated by the server, and will be ignored when sending a request.
17326
17327    All required parameters must be populated in order to send to Azure.
17328
17329    :param value: Required. Collection of resources.
17330    :type value: list[~azure.mgmt.web.v2020_09_01.models.WebSiteInstanceStatus]
17331    :ivar next_link: Link to next page of resources.
17332    :vartype next_link: str
17333    """
17334
17335    _validation = {
17336        'value': {'required': True},
17337        'next_link': {'readonly': True},
17338    }
17339
17340    _attribute_map = {
17341        'value': {'key': 'value', 'type': '[WebSiteInstanceStatus]'},
17342        'next_link': {'key': 'nextLink', 'type': 'str'},
17343    }
17344
17345    def __init__(
17346        self,
17347        **kwargs
17348    ):
17349        super(WebAppInstanceStatusCollection, self).__init__(**kwargs)
17350        self.value = kwargs['value']
17351        self.next_link = None
17352
17353
17354class WebJob(ProxyOnlyResource):
17355    """Web Job Information.
17356
17357    Variables are only populated by the server, and will be ignored when sending a request.
17358
17359    :ivar id: Resource Id.
17360    :vartype id: str
17361    :ivar name: Resource Name.
17362    :vartype name: str
17363    :param kind: Kind of resource.
17364    :type kind: str
17365    :ivar type: Resource type.
17366    :vartype type: str
17367    :ivar system_data: The system metadata relating to this resource.
17368    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17369    :param run_command: Run command.
17370    :type run_command: str
17371    :param url: Job URL.
17372    :type url: str
17373    :param extra_info_url: Extra Info URL.
17374    :type extra_info_url: str
17375    :param web_job_type: Job type. Possible values include: "Continuous", "Triggered".
17376    :type web_job_type: str or ~azure.mgmt.web.v2020_09_01.models.WebJobType
17377    :param error: Error information.
17378    :type error: str
17379    :param using_sdk: Using SDK?.
17380    :type using_sdk: bool
17381    :param settings: Job settings.
17382    :type settings: dict[str, any]
17383    """
17384
17385    _validation = {
17386        'id': {'readonly': True},
17387        'name': {'readonly': True},
17388        'type': {'readonly': True},
17389        'system_data': {'readonly': True},
17390    }
17391
17392    _attribute_map = {
17393        'id': {'key': 'id', 'type': 'str'},
17394        'name': {'key': 'name', 'type': 'str'},
17395        'kind': {'key': 'kind', 'type': 'str'},
17396        'type': {'key': 'type', 'type': 'str'},
17397        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17398        'run_command': {'key': 'properties.run_command', 'type': 'str'},
17399        'url': {'key': 'properties.url', 'type': 'str'},
17400        'extra_info_url': {'key': 'properties.extra_info_url', 'type': 'str'},
17401        'web_job_type': {'key': 'properties.web_job_type', 'type': 'str'},
17402        'error': {'key': 'properties.error', 'type': 'str'},
17403        'using_sdk': {'key': 'properties.using_sdk', 'type': 'bool'},
17404        'settings': {'key': 'properties.settings', 'type': '{object}'},
17405    }
17406
17407    def __init__(
17408        self,
17409        **kwargs
17410    ):
17411        super(WebJob, self).__init__(**kwargs)
17412        self.run_command = kwargs.get('run_command', None)
17413        self.url = kwargs.get('url', None)
17414        self.extra_info_url = kwargs.get('extra_info_url', None)
17415        self.web_job_type = kwargs.get('web_job_type', None)
17416        self.error = kwargs.get('error', None)
17417        self.using_sdk = kwargs.get('using_sdk', None)
17418        self.settings = kwargs.get('settings', None)
17419
17420
17421class WebJobCollection(msrest.serialization.Model):
17422    """Collection of Kudu web job information elements.
17423
17424    Variables are only populated by the server, and will be ignored when sending a request.
17425
17426    All required parameters must be populated in order to send to Azure.
17427
17428    :param value: Required. Collection of resources.
17429    :type value: list[~azure.mgmt.web.v2020_09_01.models.WebJob]
17430    :ivar next_link: Link to next page of resources.
17431    :vartype next_link: str
17432    """
17433
17434    _validation = {
17435        'value': {'required': True},
17436        'next_link': {'readonly': True},
17437    }
17438
17439    _attribute_map = {
17440        'value': {'key': 'value', 'type': '[WebJob]'},
17441        'next_link': {'key': 'nextLink', 'type': 'str'},
17442    }
17443
17444    def __init__(
17445        self,
17446        **kwargs
17447    ):
17448        super(WebJobCollection, self).__init__(**kwargs)
17449        self.value = kwargs['value']
17450        self.next_link = None
17451
17452
17453class WebSiteInstanceStatus(ProxyOnlyResource):
17454    """WebSiteInstanceStatus.
17455
17456    Variables are only populated by the server, and will be ignored when sending a request.
17457
17458    :ivar id: Resource Id.
17459    :vartype id: str
17460    :ivar name: Resource Name.
17461    :vartype name: str
17462    :param kind: Kind of resource.
17463    :type kind: str
17464    :ivar type: Resource type.
17465    :vartype type: str
17466    :ivar system_data: The system metadata relating to this resource.
17467    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17468    :param state:  Possible values include: "READY", "STOPPED", "UNKNOWN".
17469    :type state: str or ~azure.mgmt.web.v2020_09_01.models.SiteRuntimeState
17470    :param status_url: Link to the GetStatusApi in Kudu.
17471    :type status_url: str
17472    :param detector_url: Link to the Diagnose and Solve Portal.
17473    :type detector_url: str
17474    :param console_url: Link to the console to web app instance.
17475    :type console_url: str
17476    :param health_check_url: Link to the console to web app instance.
17477    :type health_check_url: str
17478    :param containers: Dictionary of :code:`<ContainerInfo>`.
17479    :type containers: dict[str, ~azure.mgmt.web.v2020_09_01.models.ContainerInfo]
17480    """
17481
17482    _validation = {
17483        'id': {'readonly': True},
17484        'name': {'readonly': True},
17485        'type': {'readonly': True},
17486        'system_data': {'readonly': True},
17487    }
17488
17489    _attribute_map = {
17490        'id': {'key': 'id', 'type': 'str'},
17491        'name': {'key': 'name', 'type': 'str'},
17492        'kind': {'key': 'kind', 'type': 'str'},
17493        'type': {'key': 'type', 'type': 'str'},
17494        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17495        'state': {'key': 'properties.state', 'type': 'str'},
17496        'status_url': {'key': 'properties.statusUrl', 'type': 'str'},
17497        'detector_url': {'key': 'properties.detectorUrl', 'type': 'str'},
17498        'console_url': {'key': 'properties.consoleUrl', 'type': 'str'},
17499        'health_check_url': {'key': 'properties.healthCheckUrl', 'type': 'str'},
17500        'containers': {'key': 'properties.containers', 'type': '{ContainerInfo}'},
17501    }
17502
17503    def __init__(
17504        self,
17505        **kwargs
17506    ):
17507        super(WebSiteInstanceStatus, self).__init__(**kwargs)
17508        self.state = kwargs.get('state', None)
17509        self.status_url = kwargs.get('status_url', None)
17510        self.detector_url = kwargs.get('detector_url', None)
17511        self.console_url = kwargs.get('console_url', None)
17512        self.health_check_url = kwargs.get('health_check_url', None)
17513        self.containers = kwargs.get('containers', None)
17514
17515
17516class WorkerPool(msrest.serialization.Model):
17517    """Worker pool of an App Service Environment.
17518
17519    Variables are only populated by the server, and will be ignored when sending a request.
17520
17521    :param worker_size_id: Worker size ID for referencing this worker pool.
17522    :type worker_size_id: int
17523    :param compute_mode: Shared or dedicated app hosting. Possible values include: "Shared",
17524     "Dedicated", "Dynamic".
17525    :type compute_mode: str or ~azure.mgmt.web.v2020_09_01.models.ComputeModeOptions
17526    :param worker_size: VM size of the worker pool instances.
17527    :type worker_size: str
17528    :param worker_count: Number of instances in the worker pool.
17529    :type worker_count: int
17530    :ivar instance_names: Names of all instances in the worker pool (read only).
17531    :vartype instance_names: list[str]
17532    """
17533
17534    _validation = {
17535        'instance_names': {'readonly': True},
17536    }
17537
17538    _attribute_map = {
17539        'worker_size_id': {'key': 'workerSizeId', 'type': 'int'},
17540        'compute_mode': {'key': 'computeMode', 'type': 'str'},
17541        'worker_size': {'key': 'workerSize', 'type': 'str'},
17542        'worker_count': {'key': 'workerCount', 'type': 'int'},
17543        'instance_names': {'key': 'instanceNames', 'type': '[str]'},
17544    }
17545
17546    def __init__(
17547        self,
17548        **kwargs
17549    ):
17550        super(WorkerPool, self).__init__(**kwargs)
17551        self.worker_size_id = kwargs.get('worker_size_id', None)
17552        self.compute_mode = kwargs.get('compute_mode', None)
17553        self.worker_size = kwargs.get('worker_size', None)
17554        self.worker_count = kwargs.get('worker_count', None)
17555        self.instance_names = None
17556
17557
17558class WorkerPoolCollection(msrest.serialization.Model):
17559    """Collection of worker pools.
17560
17561    Variables are only populated by the server, and will be ignored when sending a request.
17562
17563    All required parameters must be populated in order to send to Azure.
17564
17565    :param value: Required. Collection of resources.
17566    :type value: list[~azure.mgmt.web.v2020_09_01.models.WorkerPoolResource]
17567    :ivar next_link: Link to next page of resources.
17568    :vartype next_link: str
17569    """
17570
17571    _validation = {
17572        'value': {'required': True},
17573        'next_link': {'readonly': True},
17574    }
17575
17576    _attribute_map = {
17577        'value': {'key': 'value', 'type': '[WorkerPoolResource]'},
17578        'next_link': {'key': 'nextLink', 'type': 'str'},
17579    }
17580
17581    def __init__(
17582        self,
17583        **kwargs
17584    ):
17585        super(WorkerPoolCollection, self).__init__(**kwargs)
17586        self.value = kwargs['value']
17587        self.next_link = None
17588
17589
17590class WorkerPoolResource(ProxyOnlyResource):
17591    """Worker pool of an App Service Environment ARM resource.
17592
17593    Variables are only populated by the server, and will be ignored when sending a request.
17594
17595    :ivar id: Resource Id.
17596    :vartype id: str
17597    :ivar name: Resource Name.
17598    :vartype name: str
17599    :param kind: Kind of resource.
17600    :type kind: str
17601    :ivar type: Resource type.
17602    :vartype type: str
17603    :ivar system_data: The system metadata relating to this resource.
17604    :vartype system_data: ~azure.mgmt.web.v2020_09_01.models.SystemData
17605    :param sku: Description of a SKU for a scalable resource.
17606    :type sku: ~azure.mgmt.web.v2020_09_01.models.SkuDescription
17607    :param worker_size_id: Worker size ID for referencing this worker pool.
17608    :type worker_size_id: int
17609    :param compute_mode: Shared or dedicated app hosting. Possible values include: "Shared",
17610     "Dedicated", "Dynamic".
17611    :type compute_mode: str or ~azure.mgmt.web.v2020_09_01.models.ComputeModeOptions
17612    :param worker_size: VM size of the worker pool instances.
17613    :type worker_size: str
17614    :param worker_count: Number of instances in the worker pool.
17615    :type worker_count: int
17616    :ivar instance_names: Names of all instances in the worker pool (read only).
17617    :vartype instance_names: list[str]
17618    """
17619
17620    _validation = {
17621        'id': {'readonly': True},
17622        'name': {'readonly': True},
17623        'type': {'readonly': True},
17624        'system_data': {'readonly': True},
17625        'instance_names': {'readonly': True},
17626    }
17627
17628    _attribute_map = {
17629        'id': {'key': 'id', 'type': 'str'},
17630        'name': {'key': 'name', 'type': 'str'},
17631        'kind': {'key': 'kind', 'type': 'str'},
17632        'type': {'key': 'type', 'type': 'str'},
17633        'system_data': {'key': 'systemData', 'type': 'SystemData'},
17634        'sku': {'key': 'sku', 'type': 'SkuDescription'},
17635        'worker_size_id': {'key': 'properties.workerSizeId', 'type': 'int'},
17636        'compute_mode': {'key': 'properties.computeMode', 'type': 'str'},
17637        'worker_size': {'key': 'properties.workerSize', 'type': 'str'},
17638        'worker_count': {'key': 'properties.workerCount', 'type': 'int'},
17639        'instance_names': {'key': 'properties.instanceNames', 'type': '[str]'},
17640    }
17641
17642    def __init__(
17643        self,
17644        **kwargs
17645    ):
17646        super(WorkerPoolResource, self).__init__(**kwargs)
17647        self.sku = kwargs.get('sku', None)
17648        self.worker_size_id = kwargs.get('worker_size_id', None)
17649        self.compute_mode = kwargs.get('compute_mode', None)
17650        self.worker_size = kwargs.get('worker_size', None)
17651        self.worker_count = kwargs.get('worker_count', None)
17652        self.instance_names = None
17653