1# coding=utf-8
2# --------------------------------------------------------------------------
3# Copyright (c) Microsoft Corporation. All rights reserved.
4# Licensed under the MIT License. See License.txt in the project root for license information.
5# Code generated by Microsoft (R) AutoRest Code Generator.
6# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7# --------------------------------------------------------------------------
8
9from typing import List, Optional
10
11import msrest.serialization
12
13
14class FeatureOperationsListResult(msrest.serialization.Model):
15    """List of previewed features.
16
17    :param value: The array of features.
18    :type value: list[~azure.mgmt.resource.features.v2015_12_01.models.FeatureResult]
19    :param next_link: The URL to use for getting the next set of results.
20    :type next_link: str
21    """
22
23    _attribute_map = {
24        'value': {'key': 'value', 'type': '[FeatureResult]'},
25        'next_link': {'key': 'nextLink', 'type': 'str'},
26    }
27
28    def __init__(
29        self,
30        *,
31        value: Optional[List["FeatureResult"]] = None,
32        next_link: Optional[str] = None,
33        **kwargs
34    ):
35        super(FeatureOperationsListResult, self).__init__(**kwargs)
36        self.value = value
37        self.next_link = next_link
38
39
40class FeatureProperties(msrest.serialization.Model):
41    """Information about feature.
42
43    :param state: The registration state of the feature for the subscription.
44    :type state: str
45    """
46
47    _attribute_map = {
48        'state': {'key': 'state', 'type': 'str'},
49    }
50
51    def __init__(
52        self,
53        *,
54        state: Optional[str] = None,
55        **kwargs
56    ):
57        super(FeatureProperties, self).__init__(**kwargs)
58        self.state = state
59
60
61class FeatureResult(msrest.serialization.Model):
62    """Previewed feature information.
63
64    :param name: The name of the feature.
65    :type name: str
66    :param properties: Properties of the previewed feature.
67    :type properties: ~azure.mgmt.resource.features.v2015_12_01.models.FeatureProperties
68    :param id: The resource ID of the feature.
69    :type id: str
70    :param type: The resource type of the feature.
71    :type type: str
72    """
73
74    _attribute_map = {
75        'name': {'key': 'name', 'type': 'str'},
76        'properties': {'key': 'properties', 'type': 'FeatureProperties'},
77        'id': {'key': 'id', 'type': 'str'},
78        'type': {'key': 'type', 'type': 'str'},
79    }
80
81    def __init__(
82        self,
83        *,
84        name: Optional[str] = None,
85        properties: Optional["FeatureProperties"] = None,
86        id: Optional[str] = None,
87        type: Optional[str] = None,
88        **kwargs
89    ):
90        super(FeatureResult, self).__init__(**kwargs)
91        self.name = name
92        self.properties = properties
93        self.id = id
94        self.type = type
95
96
97class Operation(msrest.serialization.Model):
98    """Microsoft.Features operation.
99
100    :param name: Operation name: {provider}/{resource}/{operation}.
101    :type name: str
102    :param display: The object that represents the operation.
103    :type display: ~azure.mgmt.resource.features.v2015_12_01.models.OperationDisplay
104    """
105
106    _attribute_map = {
107        'name': {'key': 'name', 'type': 'str'},
108        'display': {'key': 'display', 'type': 'OperationDisplay'},
109    }
110
111    def __init__(
112        self,
113        *,
114        name: Optional[str] = None,
115        display: Optional["OperationDisplay"] = None,
116        **kwargs
117    ):
118        super(Operation, self).__init__(**kwargs)
119        self.name = name
120        self.display = display
121
122
123class OperationDisplay(msrest.serialization.Model):
124    """The object that represents the operation.
125
126    :param provider: Service provider: Microsoft.Features.
127    :type provider: str
128    :param resource: Resource on which the operation is performed: Profile, endpoint, etc.
129    :type resource: str
130    :param operation: Operation type: Read, write, delete, etc.
131    :type operation: str
132    """
133
134    _attribute_map = {
135        'provider': {'key': 'provider', 'type': 'str'},
136        'resource': {'key': 'resource', 'type': 'str'},
137        'operation': {'key': 'operation', 'type': 'str'},
138    }
139
140    def __init__(
141        self,
142        *,
143        provider: Optional[str] = None,
144        resource: Optional[str] = None,
145        operation: Optional[str] = None,
146        **kwargs
147    ):
148        super(OperationDisplay, self).__init__(**kwargs)
149        self.provider = provider
150        self.resource = resource
151        self.operation = operation
152
153
154class OperationListResult(msrest.serialization.Model):
155    """Result of the request to list Microsoft.Features operations. It contains a list of operations and a URL link to get the next set of results.
156
157    :param value: List of Microsoft.Features operations.
158    :type value: list[~azure.mgmt.resource.features.v2015_12_01.models.Operation]
159    :param next_link: URL to get the next set of operation list results if there are any.
160    :type next_link: str
161    """
162
163    _attribute_map = {
164        'value': {'key': 'value', 'type': '[Operation]'},
165        'next_link': {'key': 'nextLink', 'type': 'str'},
166    }
167
168    def __init__(
169        self,
170        *,
171        value: Optional[List["Operation"]] = None,
172        next_link: Optional[str] = None,
173        **kwargs
174    ):
175        super(OperationListResult, self).__init__(**kwargs)
176        self.value = value
177        self.next_link = next_link
178