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 9import datetime 10from typing import Dict, List, Optional, Union 11 12import msrest.serialization 13 14from ._data_box_edge_management_client_enums import * 15 16 17class Address(msrest.serialization.Model): 18 """The shipping address of the customer. 19 20 All required parameters must be populated in order to send to Azure. 21 22 :param address_line1: Required. The address line1. 23 :type address_line1: str 24 :param address_line2: The address line2. 25 :type address_line2: str 26 :param address_line3: The address line3. 27 :type address_line3: str 28 :param postal_code: Required. The postal code. 29 :type postal_code: str 30 :param city: Required. The city name. 31 :type city: str 32 :param state: Required. The state name. 33 :type state: str 34 :param country: Required. The country name. 35 :type country: str 36 """ 37 38 _validation = { 39 'address_line1': {'required': True}, 40 'postal_code': {'required': True}, 41 'city': {'required': True}, 42 'state': {'required': True}, 43 'country': {'required': True}, 44 } 45 46 _attribute_map = { 47 'address_line1': {'key': 'addressLine1', 'type': 'str'}, 48 'address_line2': {'key': 'addressLine2', 'type': 'str'}, 49 'address_line3': {'key': 'addressLine3', 'type': 'str'}, 50 'postal_code': {'key': 'postalCode', 'type': 'str'}, 51 'city': {'key': 'city', 'type': 'str'}, 52 'state': {'key': 'state', 'type': 'str'}, 53 'country': {'key': 'country', 'type': 'str'}, 54 } 55 56 def __init__( 57 self, 58 *, 59 address_line1: str, 60 postal_code: str, 61 city: str, 62 state: str, 63 country: str, 64 address_line2: Optional[str] = None, 65 address_line3: Optional[str] = None, 66 **kwargs 67 ): 68 super(Address, self).__init__(**kwargs) 69 self.address_line1 = address_line1 70 self.address_line2 = address_line2 71 self.address_line3 = address_line3 72 self.postal_code = postal_code 73 self.city = city 74 self.state = state 75 self.country = country 76 77 78class ARMBaseModel(msrest.serialization.Model): 79 """Represents the base class for all object models. 80 81 Variables are only populated by the server, and will be ignored when sending a request. 82 83 :ivar id: The path ID that uniquely identifies the object. 84 :vartype id: str 85 :ivar name: The object name. 86 :vartype name: str 87 :ivar type: The hierarchical type of the object. 88 :vartype type: str 89 """ 90 91 _validation = { 92 'id': {'readonly': True}, 93 'name': {'readonly': True}, 94 'type': {'readonly': True}, 95 } 96 97 _attribute_map = { 98 'id': {'key': 'id', 'type': 'str'}, 99 'name': {'key': 'name', 'type': 'str'}, 100 'type': {'key': 'type', 'type': 'str'}, 101 } 102 103 def __init__( 104 self, 105 **kwargs 106 ): 107 super(ARMBaseModel, self).__init__(**kwargs) 108 self.id = None 109 self.name = None 110 self.type = None 111 112 113class Alert(ARMBaseModel): 114 """Alert on the data box edge/gateway device. 115 116 Variables are only populated by the server, and will be ignored when sending a request. 117 118 :ivar id: The path ID that uniquely identifies the object. 119 :vartype id: str 120 :ivar name: The object name. 121 :vartype name: str 122 :ivar type: The hierarchical type of the object. 123 :vartype type: str 124 :ivar title: Alert title. 125 :vartype title: str 126 :ivar alert_type: Alert type. 127 :vartype alert_type: str 128 :ivar appeared_at_date_time: UTC time when the alert appeared. 129 :vartype appeared_at_date_time: ~datetime.datetime 130 :ivar recommendation: Alert recommendation. 131 :vartype recommendation: str 132 :ivar severity: Severity of the alert. Possible values include: "Informational", "Warning", 133 "Critical". 134 :vartype severity: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AlertSeverity 135 :ivar error_details: Error details of the alert. 136 :vartype error_details: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AlertErrorDetails 137 :ivar detailed_information: Alert details. 138 :vartype detailed_information: dict[str, str] 139 """ 140 141 _validation = { 142 'id': {'readonly': True}, 143 'name': {'readonly': True}, 144 'type': {'readonly': True}, 145 'title': {'readonly': True}, 146 'alert_type': {'readonly': True}, 147 'appeared_at_date_time': {'readonly': True}, 148 'recommendation': {'readonly': True}, 149 'severity': {'readonly': True}, 150 'error_details': {'readonly': True}, 151 'detailed_information': {'readonly': True}, 152 } 153 154 _attribute_map = { 155 'id': {'key': 'id', 'type': 'str'}, 156 'name': {'key': 'name', 'type': 'str'}, 157 'type': {'key': 'type', 'type': 'str'}, 158 'title': {'key': 'properties.title', 'type': 'str'}, 159 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, 160 'appeared_at_date_time': {'key': 'properties.appearedAtDateTime', 'type': 'iso-8601'}, 161 'recommendation': {'key': 'properties.recommendation', 'type': 'str'}, 162 'severity': {'key': 'properties.severity', 'type': 'str'}, 163 'error_details': {'key': 'properties.errorDetails', 'type': 'AlertErrorDetails'}, 164 'detailed_information': {'key': 'properties.detailedInformation', 'type': '{str}'}, 165 } 166 167 def __init__( 168 self, 169 **kwargs 170 ): 171 super(Alert, self).__init__(**kwargs) 172 self.title = None 173 self.alert_type = None 174 self.appeared_at_date_time = None 175 self.recommendation = None 176 self.severity = None 177 self.error_details = None 178 self.detailed_information = None 179 180 181class AlertErrorDetails(msrest.serialization.Model): 182 """Error details for the alert. 183 184 Variables are only populated by the server, and will be ignored when sending a request. 185 186 :ivar error_code: Error code. 187 :vartype error_code: str 188 :ivar error_message: Error Message. 189 :vartype error_message: str 190 :ivar occurrences: Number of occurrences. 191 :vartype occurrences: int 192 """ 193 194 _validation = { 195 'error_code': {'readonly': True}, 196 'error_message': {'readonly': True}, 197 'occurrences': {'readonly': True}, 198 } 199 200 _attribute_map = { 201 'error_code': {'key': 'errorCode', 'type': 'str'}, 202 'error_message': {'key': 'errorMessage', 'type': 'str'}, 203 'occurrences': {'key': 'occurrences', 'type': 'int'}, 204 } 205 206 def __init__( 207 self, 208 **kwargs 209 ): 210 super(AlertErrorDetails, self).__init__(**kwargs) 211 self.error_code = None 212 self.error_message = None 213 self.occurrences = None 214 215 216class AlertList(msrest.serialization.Model): 217 """Collection of alerts. 218 219 Variables are only populated by the server, and will be ignored when sending a request. 220 221 :ivar value: The value. 222 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Alert] 223 :ivar next_link: Link to the next set of results. 224 :vartype next_link: str 225 """ 226 227 _validation = { 228 'value': {'readonly': True}, 229 'next_link': {'readonly': True}, 230 } 231 232 _attribute_map = { 233 'value': {'key': 'value', 'type': '[Alert]'}, 234 'next_link': {'key': 'nextLink', 'type': 'str'}, 235 } 236 237 def __init__( 238 self, 239 **kwargs 240 ): 241 super(AlertList, self).__init__(**kwargs) 242 self.value = None 243 self.next_link = None 244 245 246class AsymmetricEncryptedSecret(msrest.serialization.Model): 247 """Represent the secrets intended for encryption with asymmetric key pair. 248 249 All required parameters must be populated in order to send to Azure. 250 251 :param value: Required. The value of the secret. 252 :type value: str 253 :param encryption_cert_thumbprint: Thumbprint certificate used to encrypt \"Value\". If the 254 value is unencrypted, it will be null. 255 :type encryption_cert_thumbprint: str 256 :param encryption_algorithm: Required. The algorithm used to encrypt "Value". Possible values 257 include: "None", "AES256", "RSAES_PKCS1_v_1_5". 258 :type encryption_algorithm: str or 259 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.EncryptionAlgorithm 260 """ 261 262 _validation = { 263 'value': {'required': True}, 264 'encryption_algorithm': {'required': True}, 265 } 266 267 _attribute_map = { 268 'value': {'key': 'value', 'type': 'str'}, 269 'encryption_cert_thumbprint': {'key': 'encryptionCertThumbprint', 'type': 'str'}, 270 'encryption_algorithm': {'key': 'encryptionAlgorithm', 'type': 'str'}, 271 } 272 273 def __init__( 274 self, 275 *, 276 value: str, 277 encryption_algorithm: Union[str, "EncryptionAlgorithm"], 278 encryption_cert_thumbprint: Optional[str] = None, 279 **kwargs 280 ): 281 super(AsymmetricEncryptedSecret, self).__init__(**kwargs) 282 self.value = value 283 self.encryption_cert_thumbprint = encryption_cert_thumbprint 284 self.encryption_algorithm = encryption_algorithm 285 286 287class Authentication(msrest.serialization.Model): 288 """Authentication mechanism for IoT devices. 289 290 :param symmetric_key: Symmetric key for authentication. 291 :type symmetric_key: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SymmetricKey 292 """ 293 294 _attribute_map = { 295 'symmetric_key': {'key': 'symmetricKey', 'type': 'SymmetricKey'}, 296 } 297 298 def __init__( 299 self, 300 *, 301 symmetric_key: Optional["SymmetricKey"] = None, 302 **kwargs 303 ): 304 super(Authentication, self).__init__(**kwargs) 305 self.symmetric_key = symmetric_key 306 307 308class AzureContainerInfo(msrest.serialization.Model): 309 """Azure container mapping of the endpoint. 310 311 All required parameters must be populated in order to send to Azure. 312 313 :param storage_account_credential_id: Required. ID of the storage account credential used to 314 access storage. 315 :type storage_account_credential_id: str 316 :param container_name: Required. Container name (Based on the data format specified, this 317 represents the name of Azure Files/Page blob/Block blob). 318 :type container_name: str 319 :param data_format: Required. Storage format used for the file represented by the share. 320 Possible values include: "BlockBlob", "PageBlob", "AzureFile". 321 :type data_format: str or 322 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AzureContainerDataFormat 323 """ 324 325 _validation = { 326 'storage_account_credential_id': {'required': True}, 327 'container_name': {'required': True}, 328 'data_format': {'required': True}, 329 } 330 331 _attribute_map = { 332 'storage_account_credential_id': {'key': 'storageAccountCredentialId', 'type': 'str'}, 333 'container_name': {'key': 'containerName', 'type': 'str'}, 334 'data_format': {'key': 'dataFormat', 'type': 'str'}, 335 } 336 337 def __init__( 338 self, 339 *, 340 storage_account_credential_id: str, 341 container_name: str, 342 data_format: Union[str, "AzureContainerDataFormat"], 343 **kwargs 344 ): 345 super(AzureContainerInfo, self).__init__(**kwargs) 346 self.storage_account_credential_id = storage_account_credential_id 347 self.container_name = container_name 348 self.data_format = data_format 349 350 351class BandwidthSchedule(ARMBaseModel): 352 """The bandwidth schedule details. 353 354 Variables are only populated by the server, and will be ignored when sending a request. 355 356 All required parameters must be populated in order to send to Azure. 357 358 :ivar id: The path ID that uniquely identifies the object. 359 :vartype id: str 360 :ivar name: The object name. 361 :vartype name: str 362 :ivar type: The hierarchical type of the object. 363 :vartype type: str 364 :param start: Required. The start time of the schedule in UTC. 365 :type start: str 366 :param stop: Required. The stop time of the schedule in UTC. 367 :type stop: str 368 :param rate_in_mbps: Required. The bandwidth rate in Mbps. 369 :type rate_in_mbps: int 370 :param days: Required. The days of the week when this schedule is applicable. 371 :type days: list[str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DayOfWeek] 372 """ 373 374 _validation = { 375 'id': {'readonly': True}, 376 'name': {'readonly': True}, 377 'type': {'readonly': True}, 378 'start': {'required': True}, 379 'stop': {'required': True}, 380 'rate_in_mbps': {'required': True}, 381 'days': {'required': True}, 382 } 383 384 _attribute_map = { 385 'id': {'key': 'id', 'type': 'str'}, 386 'name': {'key': 'name', 'type': 'str'}, 387 'type': {'key': 'type', 'type': 'str'}, 388 'start': {'key': 'properties.start', 'type': 'str'}, 389 'stop': {'key': 'properties.stop', 'type': 'str'}, 390 'rate_in_mbps': {'key': 'properties.rateInMbps', 'type': 'int'}, 391 'days': {'key': 'properties.days', 'type': '[str]'}, 392 } 393 394 def __init__( 395 self, 396 *, 397 start: str, 398 stop: str, 399 rate_in_mbps: int, 400 days: List[Union[str, "DayOfWeek"]], 401 **kwargs 402 ): 403 super(BandwidthSchedule, self).__init__(**kwargs) 404 self.start = start 405 self.stop = stop 406 self.rate_in_mbps = rate_in_mbps 407 self.days = days 408 409 410class BandwidthSchedulesList(msrest.serialization.Model): 411 """The collection of bandwidth schedules. 412 413 Variables are only populated by the server, and will be ignored when sending a request. 414 415 :ivar value: The list of bandwidth schedules. 416 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.BandwidthSchedule] 417 :ivar next_link: Link to the next set of results. 418 :vartype next_link: str 419 """ 420 421 _validation = { 422 'value': {'readonly': True}, 423 'next_link': {'readonly': True}, 424 } 425 426 _attribute_map = { 427 'value': {'key': 'value', 'type': '[BandwidthSchedule]'}, 428 'next_link': {'key': 'nextLink', 'type': 'str'}, 429 } 430 431 def __init__( 432 self, 433 **kwargs 434 ): 435 super(BandwidthSchedulesList, self).__init__(**kwargs) 436 self.value = None 437 self.next_link = None 438 439 440class ClientAccessRight(msrest.serialization.Model): 441 """The mapping between a particular client IP and the type of access client has on the NFS share. 442 443 All required parameters must be populated in order to send to Azure. 444 445 :param client: Required. IP of the client. 446 :type client: str 447 :param access_permission: Required. Type of access to be allowed for the client. Possible 448 values include: "NoAccess", "ReadOnly", "ReadWrite". 449 :type access_permission: str or 450 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ClientPermissionType 451 """ 452 453 _validation = { 454 'client': {'required': True}, 455 'access_permission': {'required': True}, 456 } 457 458 _attribute_map = { 459 'client': {'key': 'client', 'type': 'str'}, 460 'access_permission': {'key': 'accessPermission', 'type': 'str'}, 461 } 462 463 def __init__( 464 self, 465 *, 466 client: str, 467 access_permission: Union[str, "ClientPermissionType"], 468 **kwargs 469 ): 470 super(ClientAccessRight, self).__init__(**kwargs) 471 self.client = client 472 self.access_permission = access_permission 473 474 475class CloudErrorBody(msrest.serialization.Model): 476 """An error response from the service. 477 478 :param code: An identifier for the error. Codes are invariant and are intended to be consumed 479 programmatically. 480 :type code: str 481 :param message: A message describing the error, intended to be suitable for display in a user 482 interface. 483 :type message: str 484 :param details: A list of additional details about the error. 485 :type details: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.CloudErrorBody] 486 """ 487 488 _attribute_map = { 489 'code': {'key': 'code', 'type': 'str'}, 490 'message': {'key': 'message', 'type': 'str'}, 491 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, 492 } 493 494 def __init__( 495 self, 496 *, 497 code: Optional[str] = None, 498 message: Optional[str] = None, 499 details: Optional[List["CloudErrorBody"]] = None, 500 **kwargs 501 ): 502 super(CloudErrorBody, self).__init__(**kwargs) 503 self.code = code 504 self.message = message 505 self.details = details 506 507 508class ContactDetails(msrest.serialization.Model): 509 """Contains all the contact details of the customer. 510 511 All required parameters must be populated in order to send to Azure. 512 513 :param contact_person: Required. The contact person name. 514 :type contact_person: str 515 :param company_name: Required. The name of the company. 516 :type company_name: str 517 :param phone: Required. The phone number. 518 :type phone: str 519 :param email_list: Required. The email list. 520 :type email_list: list[str] 521 """ 522 523 _validation = { 524 'contact_person': {'required': True}, 525 'company_name': {'required': True}, 526 'phone': {'required': True}, 527 'email_list': {'required': True}, 528 } 529 530 _attribute_map = { 531 'contact_person': {'key': 'contactPerson', 'type': 'str'}, 532 'company_name': {'key': 'companyName', 'type': 'str'}, 533 'phone': {'key': 'phone', 'type': 'str'}, 534 'email_list': {'key': 'emailList', 'type': '[str]'}, 535 } 536 537 def __init__( 538 self, 539 *, 540 contact_person: str, 541 company_name: str, 542 phone: str, 543 email_list: List[str], 544 **kwargs 545 ): 546 super(ContactDetails, self).__init__(**kwargs) 547 self.contact_person = contact_person 548 self.company_name = company_name 549 self.phone = phone 550 self.email_list = email_list 551 552 553class Container(ARMBaseModel): 554 """Represents a container on the Data Box Edge/Gateway device. 555 556 Variables are only populated by the server, and will be ignored when sending a request. 557 558 All required parameters must be populated in order to send to Azure. 559 560 :ivar id: The path ID that uniquely identifies the object. 561 :vartype id: str 562 :ivar name: The object name. 563 :vartype name: str 564 :ivar type: The hierarchical type of the object. 565 :vartype type: str 566 :ivar container_status: Current status of the container. Possible values include: "OK", 567 "Offline", "Unknown", "Updating", "NeedsAttention". 568 :vartype container_status: str or 569 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ContainerStatus 570 :param data_format: Required. DataFormat for Container. Possible values include: "BlockBlob", 571 "PageBlob", "AzureFile". 572 :type data_format: str or 573 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AzureContainerDataFormat 574 :ivar refresh_details: Details of the refresh job on this container. 575 :vartype refresh_details: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RefreshDetails 576 :ivar created_date_time: The UTC time when container got created. 577 :vartype created_date_time: ~datetime.datetime 578 """ 579 580 _validation = { 581 'id': {'readonly': True}, 582 'name': {'readonly': True}, 583 'type': {'readonly': True}, 584 'container_status': {'readonly': True}, 585 'data_format': {'required': True}, 586 'refresh_details': {'readonly': True}, 587 'created_date_time': {'readonly': True}, 588 } 589 590 _attribute_map = { 591 'id': {'key': 'id', 'type': 'str'}, 592 'name': {'key': 'name', 'type': 'str'}, 593 'type': {'key': 'type', 'type': 'str'}, 594 'container_status': {'key': 'properties.containerStatus', 'type': 'str'}, 595 'data_format': {'key': 'properties.dataFormat', 'type': 'str'}, 596 'refresh_details': {'key': 'properties.refreshDetails', 'type': 'RefreshDetails'}, 597 'created_date_time': {'key': 'properties.createdDateTime', 'type': 'iso-8601'}, 598 } 599 600 def __init__( 601 self, 602 *, 603 data_format: Union[str, "AzureContainerDataFormat"], 604 **kwargs 605 ): 606 super(Container, self).__init__(**kwargs) 607 self.container_status = None 608 self.data_format = data_format 609 self.refresh_details = None 610 self.created_date_time = None 611 612 613class ContainerList(msrest.serialization.Model): 614 """Collection of all the containers on the Data Box Edge/Gateway device. 615 616 Variables are only populated by the server, and will be ignored when sending a request. 617 618 :ivar value: The list of containers. 619 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Container] 620 :ivar next_link: Link to the next set of results. 621 :vartype next_link: str 622 """ 623 624 _validation = { 625 'value': {'readonly': True}, 626 'next_link': {'readonly': True}, 627 } 628 629 _attribute_map = { 630 'value': {'key': 'value', 'type': '[Container]'}, 631 'next_link': {'key': 'nextLink', 'type': 'str'}, 632 } 633 634 def __init__( 635 self, 636 **kwargs 637 ): 638 super(ContainerList, self).__init__(**kwargs) 639 self.value = None 640 self.next_link = None 641 642 643class DataBoxEdgeDevice(ARMBaseModel): 644 """The Data Box Edge/Gateway device. 645 646 Variables are only populated by the server, and will be ignored when sending a request. 647 648 All required parameters must be populated in order to send to Azure. 649 650 :ivar id: The path ID that uniquely identifies the object. 651 :vartype id: str 652 :ivar name: The object name. 653 :vartype name: str 654 :ivar type: The hierarchical type of the object. 655 :vartype type: str 656 :param location: Required. The location of the device. This is a supported and registered Azure 657 geographical region (for example, West US, East US, or Southeast Asia). The geographical region 658 of a device cannot be changed once it is created, but if an identical geographical region is 659 specified on update, the request will succeed. 660 :type location: str 661 :param tags: A set of tags. The list of tags that describe the device. These tags can be used 662 to view and group this device (across resource groups). 663 :type tags: dict[str, str] 664 :param sku: The SKU type. 665 :type sku: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.Sku 666 :param etag: The etag for the devices. 667 :type etag: str 668 :param data_box_edge_device_status: The status of the Data Box Edge/Gateway device. Possible 669 values include: "ReadyToSetup", "Online", "Offline", "NeedsAttention", "Disconnected", 670 "PartiallyDisconnected", "Maintenance". 671 :type data_box_edge_device_status: str or 672 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DataBoxEdgeDeviceStatus 673 :ivar serial_number: The Serial Number of Data Box Edge/Gateway device. 674 :vartype serial_number: str 675 :param description: The Description of the Data Box Edge/Gateway device. 676 :type description: str 677 :param model_description: The description of the Data Box Edge/Gateway device model. 678 :type model_description: str 679 :ivar device_type: The type of the Data Box Edge/Gateway device. Possible values include: 680 "DataBoxEdgeDevice". 681 :vartype device_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DeviceType 682 :param friendly_name: The Data Box Edge/Gateway device name. 683 :type friendly_name: str 684 :ivar culture: The Data Box Edge/Gateway device culture. 685 :vartype culture: str 686 :ivar device_model: The Data Box Edge/Gateway device model. 687 :vartype device_model: str 688 :ivar device_software_version: The Data Box Edge/Gateway device software version. 689 :vartype device_software_version: str 690 :ivar device_local_capacity: The Data Box Edge/Gateway device local capacity in MB. 691 :vartype device_local_capacity: long 692 :ivar time_zone: The Data Box Edge/Gateway device timezone. 693 :vartype time_zone: str 694 :ivar device_hcs_version: The device software version number of the device (eg: 1.2.18105.6). 695 :vartype device_hcs_version: str 696 :ivar configured_role_types: Type of compute roles configured. 697 :vartype configured_role_types: list[str or 698 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleTypes] 699 :ivar node_count: The number of nodes in the cluster. 700 :vartype node_count: int 701 """ 702 703 _validation = { 704 'id': {'readonly': True}, 705 'name': {'readonly': True}, 706 'type': {'readonly': True}, 707 'location': {'required': True}, 708 'serial_number': {'readonly': True}, 709 'device_type': {'readonly': True}, 710 'culture': {'readonly': True}, 711 'device_model': {'readonly': True}, 712 'device_software_version': {'readonly': True}, 713 'device_local_capacity': {'readonly': True}, 714 'time_zone': {'readonly': True}, 715 'device_hcs_version': {'readonly': True}, 716 'configured_role_types': {'readonly': True}, 717 'node_count': {'readonly': True}, 718 } 719 720 _attribute_map = { 721 'id': {'key': 'id', 'type': 'str'}, 722 'name': {'key': 'name', 'type': 'str'}, 723 'type': {'key': 'type', 'type': 'str'}, 724 'location': {'key': 'location', 'type': 'str'}, 725 'tags': {'key': 'tags', 'type': '{str}'}, 726 'sku': {'key': 'sku', 'type': 'Sku'}, 727 'etag': {'key': 'etag', 'type': 'str'}, 728 'data_box_edge_device_status': {'key': 'properties.dataBoxEdgeDeviceStatus', 'type': 'str'}, 729 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 730 'description': {'key': 'properties.description', 'type': 'str'}, 731 'model_description': {'key': 'properties.modelDescription', 'type': 'str'}, 732 'device_type': {'key': 'properties.deviceType', 'type': 'str'}, 733 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, 734 'culture': {'key': 'properties.culture', 'type': 'str'}, 735 'device_model': {'key': 'properties.deviceModel', 'type': 'str'}, 736 'device_software_version': {'key': 'properties.deviceSoftwareVersion', 'type': 'str'}, 737 'device_local_capacity': {'key': 'properties.deviceLocalCapacity', 'type': 'long'}, 738 'time_zone': {'key': 'properties.timeZone', 'type': 'str'}, 739 'device_hcs_version': {'key': 'properties.deviceHcsVersion', 'type': 'str'}, 740 'configured_role_types': {'key': 'properties.configuredRoleTypes', 'type': '[str]'}, 741 'node_count': {'key': 'properties.nodeCount', 'type': 'int'}, 742 } 743 744 def __init__( 745 self, 746 *, 747 location: str, 748 tags: Optional[Dict[str, str]] = None, 749 sku: Optional["Sku"] = None, 750 etag: Optional[str] = None, 751 data_box_edge_device_status: Optional[Union[str, "DataBoxEdgeDeviceStatus"]] = None, 752 description: Optional[str] = None, 753 model_description: Optional[str] = None, 754 friendly_name: Optional[str] = None, 755 **kwargs 756 ): 757 super(DataBoxEdgeDevice, self).__init__(**kwargs) 758 self.location = location 759 self.tags = tags 760 self.sku = sku 761 self.etag = etag 762 self.data_box_edge_device_status = data_box_edge_device_status 763 self.serial_number = None 764 self.description = description 765 self.model_description = model_description 766 self.device_type = None 767 self.friendly_name = friendly_name 768 self.culture = None 769 self.device_model = None 770 self.device_software_version = None 771 self.device_local_capacity = None 772 self.time_zone = None 773 self.device_hcs_version = None 774 self.configured_role_types = None 775 self.node_count = None 776 777 778class DataBoxEdgeDeviceExtendedInfo(ARMBaseModel): 779 """The extended Info of the Data Box Edge/Gateway device. 780 781 Variables are only populated by the server, and will be ignored when sending a request. 782 783 :ivar id: The path ID that uniquely identifies the object. 784 :vartype id: str 785 :ivar name: The object name. 786 :vartype name: str 787 :ivar type: The hierarchical type of the object. 788 :vartype type: str 789 :param encryption_key_thumbprint: The digital signature of encrypted certificate. 790 :type encryption_key_thumbprint: str 791 :param encryption_key: The public part of the encryption certificate. Client uses this to 792 encrypt any secret. 793 :type encryption_key: str 794 :ivar resource_key: The Resource ID of the Resource. 795 :vartype resource_key: str 796 """ 797 798 _validation = { 799 'id': {'readonly': True}, 800 'name': {'readonly': True}, 801 'type': {'readonly': True}, 802 'resource_key': {'readonly': True}, 803 } 804 805 _attribute_map = { 806 'id': {'key': 'id', 'type': 'str'}, 807 'name': {'key': 'name', 'type': 'str'}, 808 'type': {'key': 'type', 'type': 'str'}, 809 'encryption_key_thumbprint': {'key': 'properties.encryptionKeyThumbprint', 'type': 'str'}, 810 'encryption_key': {'key': 'properties.encryptionKey', 'type': 'str'}, 811 'resource_key': {'key': 'properties.resourceKey', 'type': 'str'}, 812 } 813 814 def __init__( 815 self, 816 *, 817 encryption_key_thumbprint: Optional[str] = None, 818 encryption_key: Optional[str] = None, 819 **kwargs 820 ): 821 super(DataBoxEdgeDeviceExtendedInfo, self).__init__(**kwargs) 822 self.encryption_key_thumbprint = encryption_key_thumbprint 823 self.encryption_key = encryption_key 824 self.resource_key = None 825 826 827class DataBoxEdgeDeviceList(msrest.serialization.Model): 828 """The collection of Data Box Edge/Gateway devices. 829 830 Variables are only populated by the server, and will be ignored when sending a request. 831 832 :ivar value: The list of Data Box Edge/Gateway devices. 833 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.DataBoxEdgeDevice] 834 :ivar next_link: Link to the next set of results. 835 :vartype next_link: str 836 """ 837 838 _validation = { 839 'value': {'readonly': True}, 840 'next_link': {'readonly': True}, 841 } 842 843 _attribute_map = { 844 'value': {'key': 'value', 'type': '[DataBoxEdgeDevice]'}, 845 'next_link': {'key': 'nextLink', 'type': 'str'}, 846 } 847 848 def __init__( 849 self, 850 **kwargs 851 ): 852 super(DataBoxEdgeDeviceList, self).__init__(**kwargs) 853 self.value = None 854 self.next_link = None 855 856 857class DataBoxEdgeDevicePatch(msrest.serialization.Model): 858 """The Data Box Edge/Gateway device patch. 859 860 :param tags: A set of tags. The tags attached to the Data Box Edge/Gateway resource. 861 :type tags: dict[str, str] 862 """ 863 864 _attribute_map = { 865 'tags': {'key': 'tags', 'type': '{str}'}, 866 } 867 868 def __init__( 869 self, 870 *, 871 tags: Optional[Dict[str, str]] = None, 872 **kwargs 873 ): 874 super(DataBoxEdgeDevicePatch, self).__init__(**kwargs) 875 self.tags = tags 876 877 878class DataBoxEdgeSku(msrest.serialization.Model): 879 """The Sku information. 880 881 Variables are only populated by the server, and will be ignored when sending a request. 882 883 :ivar resource_type: The type of the resource. 884 :vartype resource_type: str 885 :ivar name: The Sku name. Possible values include: "Gateway", "Edge", "TEA_1Node", 886 "TEA_1Node_UPS", "TEA_1Node_Heater", "TEA_1Node_UPS_Heater", "TEA_4Node_Heater", 887 "TEA_4Node_UPS_Heater", "TMA", "TDC", "TCA_Large", "TCA_Small", "GPU". 888 :vartype name: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuName 889 :ivar kind: The Sku kind. 890 :vartype kind: str 891 :ivar tier: The Sku tier. Possible values include: "Standard". 892 :vartype tier: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuTier 893 :ivar size: The Sku kind. 894 :vartype size: str 895 :ivar family: The Sku family. 896 :vartype family: str 897 :ivar locations: Availability of the Sku for the region. 898 :vartype locations: list[str] 899 :ivar api_versions: The API versions in which Sku is available. 900 :vartype api_versions: list[str] 901 :ivar location_info: Availability of the Sku for the location/zone/site. 902 :vartype location_info: 903 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuLocationInfo] 904 :ivar costs: The pricing info of the Sku. 905 :vartype costs: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuCost] 906 :ivar restrictions: Restriction info of the SKU. 907 :vartype restrictions: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuRestriction] 908 :ivar signup_option: Can the SKU be signed up.. Possible values include: "None", "Available". 909 :vartype signup_option: str or 910 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuSignupOption 911 :ivar version: Sku version. Possible values include: "Stable", "Preview". 912 :vartype version: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuVersion 913 :ivar availability: Is SKU available. Possible values include: "Available", "Unavailable". 914 :vartype availability: str or 915 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuAvailability 916 """ 917 918 _validation = { 919 'resource_type': {'readonly': True}, 920 'name': {'readonly': True}, 921 'kind': {'readonly': True}, 922 'tier': {'readonly': True}, 923 'size': {'readonly': True}, 924 'family': {'readonly': True}, 925 'locations': {'readonly': True}, 926 'api_versions': {'readonly': True}, 927 'location_info': {'readonly': True}, 928 'costs': {'readonly': True}, 929 'restrictions': {'readonly': True}, 930 'signup_option': {'readonly': True}, 931 'version': {'readonly': True}, 932 'availability': {'readonly': True}, 933 } 934 935 _attribute_map = { 936 'resource_type': {'key': 'resourceType', 'type': 'str'}, 937 'name': {'key': 'name', 'type': 'str'}, 938 'kind': {'key': 'kind', 'type': 'str'}, 939 'tier': {'key': 'tier', 'type': 'str'}, 940 'size': {'key': 'size', 'type': 'str'}, 941 'family': {'key': 'family', 'type': 'str'}, 942 'locations': {'key': 'locations', 'type': '[str]'}, 943 'api_versions': {'key': 'apiVersions', 'type': '[str]'}, 944 'location_info': {'key': 'locationInfo', 'type': '[SkuLocationInfo]'}, 945 'costs': {'key': 'costs', 'type': '[SkuCost]'}, 946 'restrictions': {'key': 'restrictions', 'type': '[SkuRestriction]'}, 947 'signup_option': {'key': 'signupOption', 'type': 'str'}, 948 'version': {'key': 'version', 'type': 'str'}, 949 'availability': {'key': 'availability', 'type': 'str'}, 950 } 951 952 def __init__( 953 self, 954 **kwargs 955 ): 956 super(DataBoxEdgeSku, self).__init__(**kwargs) 957 self.resource_type = None 958 self.name = None 959 self.kind = None 960 self.tier = None 961 self.size = None 962 self.family = None 963 self.locations = None 964 self.api_versions = None 965 self.location_info = None 966 self.costs = None 967 self.restrictions = None 968 self.signup_option = None 969 self.version = None 970 self.availability = None 971 972 973class DataBoxEdgeSkuList(msrest.serialization.Model): 974 """List of SKU Information objects. 975 976 Variables are only populated by the server, and will be ignored when sending a request. 977 978 :ivar value: List of ResourceType Sku. 979 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.DataBoxEdgeSku] 980 :ivar next_link: Links to the next set of results. 981 :vartype next_link: str 982 """ 983 984 _validation = { 985 'value': {'readonly': True}, 986 'next_link': {'readonly': True}, 987 } 988 989 _attribute_map = { 990 'value': {'key': 'value', 'type': '[DataBoxEdgeSku]'}, 991 'next_link': {'key': 'nextLink', 'type': 'str'}, 992 } 993 994 def __init__( 995 self, 996 **kwargs 997 ): 998 super(DataBoxEdgeSkuList, self).__init__(**kwargs) 999 self.value = None 1000 self.next_link = None 1001 1002 1003class Trigger(ARMBaseModel): 1004 """Trigger details. 1005 1006 You probably want to use the sub-classes and not this class directly. Known 1007 sub-classes are: FileEventTrigger, PeriodicTimerEventTrigger. 1008 1009 Variables are only populated by the server, and will be ignored when sending a request. 1010 1011 All required parameters must be populated in order to send to Azure. 1012 1013 :ivar id: The path ID that uniquely identifies the object. 1014 :vartype id: str 1015 :ivar name: The object name. 1016 :vartype name: str 1017 :ivar type: The hierarchical type of the object. 1018 :vartype type: str 1019 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 1020 "FileEvent", "PeriodicTimerEvent". 1021 :type kind: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.TriggerEventType 1022 """ 1023 1024 _validation = { 1025 'id': {'readonly': True}, 1026 'name': {'readonly': True}, 1027 'type': {'readonly': True}, 1028 'kind': {'required': True}, 1029 } 1030 1031 _attribute_map = { 1032 'id': {'key': 'id', 'type': 'str'}, 1033 'name': {'key': 'name', 'type': 'str'}, 1034 'type': {'key': 'type', 'type': 'str'}, 1035 'kind': {'key': 'kind', 'type': 'str'}, 1036 } 1037 1038 _subtype_map = { 1039 'kind': {'FileEvent': 'FileEventTrigger', 'PeriodicTimerEvent': 'PeriodicTimerEventTrigger'} 1040 } 1041 1042 def __init__( 1043 self, 1044 **kwargs 1045 ): 1046 super(Trigger, self).__init__(**kwargs) 1047 self.kind = 'Trigger' # type: str 1048 1049 1050class FileEventTrigger(Trigger): 1051 """Trigger details. 1052 1053 Variables are only populated by the server, and will be ignored when sending a request. 1054 1055 All required parameters must be populated in order to send to Azure. 1056 1057 :ivar id: The path ID that uniquely identifies the object. 1058 :vartype id: str 1059 :ivar name: The object name. 1060 :vartype name: str 1061 :ivar type: The hierarchical type of the object. 1062 :vartype type: str 1063 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 1064 "FileEvent", "PeriodicTimerEvent". 1065 :type kind: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.TriggerEventType 1066 :param source_info: Required. File event source details. 1067 :type source_info: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.FileSourceInfo 1068 :param sink_info: Required. Role sink info. 1069 :type sink_info: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleSinkInfo 1070 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 1071 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 1072 modules in the device, the tag can be the name or the image URL of the module. 1073 :type custom_context_tag: str 1074 """ 1075 1076 _validation = { 1077 'id': {'readonly': True}, 1078 'name': {'readonly': True}, 1079 'type': {'readonly': True}, 1080 'kind': {'required': True}, 1081 'source_info': {'required': True}, 1082 'sink_info': {'required': True}, 1083 } 1084 1085 _attribute_map = { 1086 'id': {'key': 'id', 'type': 'str'}, 1087 'name': {'key': 'name', 'type': 'str'}, 1088 'type': {'key': 'type', 'type': 'str'}, 1089 'kind': {'key': 'kind', 'type': 'str'}, 1090 'source_info': {'key': 'properties.sourceInfo', 'type': 'FileSourceInfo'}, 1091 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 1092 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 1093 } 1094 1095 def __init__( 1096 self, 1097 *, 1098 source_info: "FileSourceInfo", 1099 sink_info: "RoleSinkInfo", 1100 custom_context_tag: Optional[str] = None, 1101 **kwargs 1102 ): 1103 super(FileEventTrigger, self).__init__(**kwargs) 1104 self.kind = 'FileEvent' # type: str 1105 self.source_info = source_info 1106 self.sink_info = sink_info 1107 self.custom_context_tag = custom_context_tag 1108 1109 1110class FileSourceInfo(msrest.serialization.Model): 1111 """File source details. 1112 1113 All required parameters must be populated in order to send to Azure. 1114 1115 :param share_id: Required. File share ID. 1116 :type share_id: str 1117 """ 1118 1119 _validation = { 1120 'share_id': {'required': True}, 1121 } 1122 1123 _attribute_map = { 1124 'share_id': {'key': 'shareId', 'type': 'str'}, 1125 } 1126 1127 def __init__( 1128 self, 1129 *, 1130 share_id: str, 1131 **kwargs 1132 ): 1133 super(FileSourceInfo, self).__init__(**kwargs) 1134 self.share_id = share_id 1135 1136 1137class ImageRepositoryCredential(msrest.serialization.Model): 1138 """Image repository credential. 1139 1140 All required parameters must be populated in order to send to Azure. 1141 1142 :param image_repository_url: Required. Image repository url (e.g.: mcr.microsoft.com). 1143 :type image_repository_url: str 1144 :param user_name: Required. Repository user name. 1145 :type user_name: str 1146 :param password: Repository user password. 1147 :type password: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AsymmetricEncryptedSecret 1148 """ 1149 1150 _validation = { 1151 'image_repository_url': {'required': True}, 1152 'user_name': {'required': True}, 1153 } 1154 1155 _attribute_map = { 1156 'image_repository_url': {'key': 'imageRepositoryUrl', 'type': 'str'}, 1157 'user_name': {'key': 'userName', 'type': 'str'}, 1158 'password': {'key': 'password', 'type': 'AsymmetricEncryptedSecret'}, 1159 } 1160 1161 def __init__( 1162 self, 1163 *, 1164 image_repository_url: str, 1165 user_name: str, 1166 password: Optional["AsymmetricEncryptedSecret"] = None, 1167 **kwargs 1168 ): 1169 super(ImageRepositoryCredential, self).__init__(**kwargs) 1170 self.image_repository_url = image_repository_url 1171 self.user_name = user_name 1172 self.password = password 1173 1174 1175class IoTDeviceInfo(msrest.serialization.Model): 1176 """Metadata of IoT device/IoT Edge device to be configured. 1177 1178 All required parameters must be populated in order to send to Azure. 1179 1180 :param device_id: Required. ID of the IoT device/edge device. 1181 :type device_id: str 1182 :param io_t_host_hub: Required. Host name for the IoT hub associated to the device. 1183 :type io_t_host_hub: str 1184 :param io_t_host_hub_id: Id for the IoT hub associated to the device. 1185 :type io_t_host_hub_id: str 1186 :param authentication: Encrypted IoT device/IoT edge device connection string. 1187 :type authentication: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.Authentication 1188 """ 1189 1190 _validation = { 1191 'device_id': {'required': True}, 1192 'io_t_host_hub': {'required': True}, 1193 } 1194 1195 _attribute_map = { 1196 'device_id': {'key': 'deviceId', 'type': 'str'}, 1197 'io_t_host_hub': {'key': 'ioTHostHub', 'type': 'str'}, 1198 'io_t_host_hub_id': {'key': 'ioTHostHubId', 'type': 'str'}, 1199 'authentication': {'key': 'authentication', 'type': 'Authentication'}, 1200 } 1201 1202 def __init__( 1203 self, 1204 *, 1205 device_id: str, 1206 io_t_host_hub: str, 1207 io_t_host_hub_id: Optional[str] = None, 1208 authentication: Optional["Authentication"] = None, 1209 **kwargs 1210 ): 1211 super(IoTDeviceInfo, self).__init__(**kwargs) 1212 self.device_id = device_id 1213 self.io_t_host_hub = io_t_host_hub 1214 self.io_t_host_hub_id = io_t_host_hub_id 1215 self.authentication = authentication 1216 1217 1218class IoTEdgeAgentInfo(msrest.serialization.Model): 1219 """IoT edge agent details is optional, this will be used for download system Agent module while bootstrapping IoT Role if specified. 1220 1221 All required parameters must be populated in order to send to Azure. 1222 1223 :param image_name: Required. Name of the IoT edge agent image. 1224 :type image_name: str 1225 :param tag: Required. Image Tag. 1226 :type tag: str 1227 :param image_repository: Image repository details. 1228 :type image_repository: 1229 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ImageRepositoryCredential 1230 """ 1231 1232 _validation = { 1233 'image_name': {'required': True}, 1234 'tag': {'required': True}, 1235 } 1236 1237 _attribute_map = { 1238 'image_name': {'key': 'imageName', 'type': 'str'}, 1239 'tag': {'key': 'tag', 'type': 'str'}, 1240 'image_repository': {'key': 'imageRepository', 'type': 'ImageRepositoryCredential'}, 1241 } 1242 1243 def __init__( 1244 self, 1245 *, 1246 image_name: str, 1247 tag: str, 1248 image_repository: Optional["ImageRepositoryCredential"] = None, 1249 **kwargs 1250 ): 1251 super(IoTEdgeAgentInfo, self).__init__(**kwargs) 1252 self.image_name = image_name 1253 self.tag = tag 1254 self.image_repository = image_repository 1255 1256 1257class Role(ARMBaseModel): 1258 """Compute role. 1259 1260 You probably want to use the sub-classes and not this class directly. Known 1261 sub-classes are: IoTRole. 1262 1263 Variables are only populated by the server, and will be ignored when sending a request. 1264 1265 All required parameters must be populated in order to send to Azure. 1266 1267 :ivar id: The path ID that uniquely identifies the object. 1268 :vartype id: str 1269 :ivar name: The object name. 1270 :vartype name: str 1271 :ivar type: The hierarchical type of the object. 1272 :vartype type: str 1273 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 1274 "ASA", "Functions", "Cognitive". 1275 :type kind: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleTypes 1276 """ 1277 1278 _validation = { 1279 'id': {'readonly': True}, 1280 'name': {'readonly': True}, 1281 'type': {'readonly': True}, 1282 'kind': {'required': True}, 1283 } 1284 1285 _attribute_map = { 1286 'id': {'key': 'id', 'type': 'str'}, 1287 'name': {'key': 'name', 'type': 'str'}, 1288 'type': {'key': 'type', 'type': 'str'}, 1289 'kind': {'key': 'kind', 'type': 'str'}, 1290 } 1291 1292 _subtype_map = { 1293 'kind': {'IOT': 'IoTRole'} 1294 } 1295 1296 def __init__( 1297 self, 1298 **kwargs 1299 ): 1300 super(Role, self).__init__(**kwargs) 1301 self.kind = 'Role' # type: str 1302 1303 1304class IoTRole(Role): 1305 """Compute role. 1306 1307 Variables are only populated by the server, and will be ignored when sending a request. 1308 1309 All required parameters must be populated in order to send to Azure. 1310 1311 :ivar id: The path ID that uniquely identifies the object. 1312 :vartype id: str 1313 :ivar name: The object name. 1314 :vartype name: str 1315 :ivar type: The hierarchical type of the object. 1316 :vartype type: str 1317 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 1318 "ASA", "Functions", "Cognitive". 1319 :type kind: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleTypes 1320 :param host_platform: Host OS supported by the IoT role. Possible values include: "Windows", 1321 "Linux". 1322 :type host_platform: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.PlatformType 1323 :param io_t_device_details: IoT device metadata to which data box edge device needs to be 1324 connected. 1325 :type io_t_device_details: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.IoTDeviceInfo 1326 :param io_t_edge_device_details: IoT edge device to which the IoT role needs to be configured. 1327 :type io_t_edge_device_details: 1328 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.IoTDeviceInfo 1329 :param share_mappings: Mount points of shares in role(s). 1330 :type share_mappings: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.MountPointMap] 1331 :param io_t_edge_agent_info: Iot edge agent details to download the agent and bootstrap iot 1332 runtime. 1333 :type io_t_edge_agent_info: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.IoTEdgeAgentInfo 1334 :ivar host_platform_type: Platform where the Iot runtime is hosted. Possible values include: 1335 "KubernetesCluster", "LinuxVM". 1336 :vartype host_platform_type: str or 1337 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.HostPlatformType 1338 :param role_status: Role status. Possible values include: "Enabled", "Disabled". 1339 :type role_status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleStatus 1340 """ 1341 1342 _validation = { 1343 'id': {'readonly': True}, 1344 'name': {'readonly': True}, 1345 'type': {'readonly': True}, 1346 'kind': {'required': True}, 1347 'host_platform_type': {'readonly': True}, 1348 } 1349 1350 _attribute_map = { 1351 'id': {'key': 'id', 'type': 'str'}, 1352 'name': {'key': 'name', 'type': 'str'}, 1353 'type': {'key': 'type', 'type': 'str'}, 1354 'kind': {'key': 'kind', 'type': 'str'}, 1355 'host_platform': {'key': 'properties.hostPlatform', 'type': 'str'}, 1356 'io_t_device_details': {'key': 'properties.ioTDeviceDetails', 'type': 'IoTDeviceInfo'}, 1357 'io_t_edge_device_details': {'key': 'properties.ioTEdgeDeviceDetails', 'type': 'IoTDeviceInfo'}, 1358 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 1359 'io_t_edge_agent_info': {'key': 'properties.ioTEdgeAgentInfo', 'type': 'IoTEdgeAgentInfo'}, 1360 'host_platform_type': {'key': 'properties.hostPlatformType', 'type': 'str'}, 1361 'role_status': {'key': 'properties.roleStatus', 'type': 'str'}, 1362 } 1363 1364 def __init__( 1365 self, 1366 *, 1367 host_platform: Optional[Union[str, "PlatformType"]] = None, 1368 io_t_device_details: Optional["IoTDeviceInfo"] = None, 1369 io_t_edge_device_details: Optional["IoTDeviceInfo"] = None, 1370 share_mappings: Optional[List["MountPointMap"]] = None, 1371 io_t_edge_agent_info: Optional["IoTEdgeAgentInfo"] = None, 1372 role_status: Optional[Union[str, "RoleStatus"]] = None, 1373 **kwargs 1374 ): 1375 super(IoTRole, self).__init__(**kwargs) 1376 self.kind = 'IOT' # type: str 1377 self.host_platform = host_platform 1378 self.io_t_device_details = io_t_device_details 1379 self.io_t_edge_device_details = io_t_edge_device_details 1380 self.share_mappings = share_mappings 1381 self.io_t_edge_agent_info = io_t_edge_agent_info 1382 self.host_platform_type = None 1383 self.role_status = role_status 1384 1385 1386class Ipv4Config(msrest.serialization.Model): 1387 """Details related to the IPv4 address configuration. 1388 1389 Variables are only populated by the server, and will be ignored when sending a request. 1390 1391 :ivar ip_address: The IPv4 address of the network adapter. 1392 :vartype ip_address: str 1393 :ivar subnet: The IPv4 subnet of the network adapter. 1394 :vartype subnet: str 1395 :ivar gateway: The IPv4 gateway of the network adapter. 1396 :vartype gateway: str 1397 """ 1398 1399 _validation = { 1400 'ip_address': {'readonly': True}, 1401 'subnet': {'readonly': True}, 1402 'gateway': {'readonly': True}, 1403 } 1404 1405 _attribute_map = { 1406 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1407 'subnet': {'key': 'subnet', 'type': 'str'}, 1408 'gateway': {'key': 'gateway', 'type': 'str'}, 1409 } 1410 1411 def __init__( 1412 self, 1413 **kwargs 1414 ): 1415 super(Ipv4Config, self).__init__(**kwargs) 1416 self.ip_address = None 1417 self.subnet = None 1418 self.gateway = None 1419 1420 1421class Ipv6Config(msrest.serialization.Model): 1422 """Details related to the IPv6 address configuration. 1423 1424 Variables are only populated by the server, and will be ignored when sending a request. 1425 1426 :ivar ip_address: The IPv6 address of the network adapter. 1427 :vartype ip_address: str 1428 :ivar prefix_length: The IPv6 prefix of the network adapter. 1429 :vartype prefix_length: int 1430 :ivar gateway: The IPv6 gateway of the network adapter. 1431 :vartype gateway: str 1432 """ 1433 1434 _validation = { 1435 'ip_address': {'readonly': True}, 1436 'prefix_length': {'readonly': True}, 1437 'gateway': {'readonly': True}, 1438 } 1439 1440 _attribute_map = { 1441 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1442 'prefix_length': {'key': 'prefixLength', 'type': 'int'}, 1443 'gateway': {'key': 'gateway', 'type': 'str'}, 1444 } 1445 1446 def __init__( 1447 self, 1448 **kwargs 1449 ): 1450 super(Ipv6Config, self).__init__(**kwargs) 1451 self.ip_address = None 1452 self.prefix_length = None 1453 self.gateway = None 1454 1455 1456class Job(msrest.serialization.Model): 1457 """A device job. 1458 1459 Variables are only populated by the server, and will be ignored when sending a request. 1460 1461 :ivar id: The path ID that uniquely identifies the object. 1462 :vartype id: str 1463 :ivar name: The name of the object. 1464 :vartype name: str 1465 :ivar type: The hierarchical type of the object. 1466 :vartype type: str 1467 :ivar status: The current status of the job. Possible values include: "Invalid", "Running", 1468 "Succeeded", "Failed", "Canceled", "Paused", "Scheduled". 1469 :vartype status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.JobStatus 1470 :ivar start_time: The UTC date and time at which the job started. 1471 :vartype start_time: ~datetime.datetime 1472 :ivar end_time: The UTC date and time at which the job completed. 1473 :vartype end_time: ~datetime.datetime 1474 :ivar percent_complete: The percentage of the job that is complete. 1475 :vartype percent_complete: int 1476 :ivar error: The error details. 1477 :vartype error: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.JobErrorDetails 1478 :ivar job_type: The type of the job. Possible values include: "Invalid", "ScanForUpdates", 1479 "DownloadUpdates", "InstallUpdates", "RefreshShare", "RefreshContainer". 1480 :vartype job_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.JobType 1481 :ivar current_stage: Current stage of the update operation. Possible values include: "Unknown", 1482 "Initial", "ScanStarted", "ScanComplete", "ScanFailed", "DownloadStarted", "DownloadComplete", 1483 "DownloadFailed", "InstallStarted", "InstallComplete", "InstallFailed", "RebootInitiated", 1484 "Success", "Failure", "RescanStarted", "RescanComplete", "RescanFailed". 1485 :vartype current_stage: str or 1486 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.UpdateOperationStage 1487 :ivar download_progress: The download progress. 1488 :vartype download_progress: 1489 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.UpdateDownloadProgress 1490 :ivar install_progress: The install progress. 1491 :vartype install_progress: 1492 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.UpdateInstallProgress 1493 :ivar total_refresh_errors: Total number of errors encountered during the refresh process. 1494 :vartype total_refresh_errors: int 1495 :ivar error_manifest_file: Local share/remote container relative path to the error manifest 1496 file of the refresh. 1497 :vartype error_manifest_file: str 1498 :ivar refreshed_entity_id: ARM ID of the entity that was refreshed. 1499 :vartype refreshed_entity_id: str 1500 :param folder: If only subfolders need to be refreshed, then the subfolder path inside the 1501 share or container. (The path is empty if there are no subfolders.). 1502 :type folder: str 1503 """ 1504 1505 _validation = { 1506 'id': {'readonly': True}, 1507 'name': {'readonly': True}, 1508 'type': {'readonly': True}, 1509 'status': {'readonly': True}, 1510 'start_time': {'readonly': True}, 1511 'end_time': {'readonly': True}, 1512 'percent_complete': {'readonly': True}, 1513 'error': {'readonly': True}, 1514 'job_type': {'readonly': True}, 1515 'current_stage': {'readonly': True}, 1516 'download_progress': {'readonly': True}, 1517 'install_progress': {'readonly': True}, 1518 'total_refresh_errors': {'readonly': True}, 1519 'error_manifest_file': {'readonly': True}, 1520 'refreshed_entity_id': {'readonly': True}, 1521 } 1522 1523 _attribute_map = { 1524 'id': {'key': 'id', 'type': 'str'}, 1525 'name': {'key': 'name', 'type': 'str'}, 1526 'type': {'key': 'type', 'type': 'str'}, 1527 'status': {'key': 'status', 'type': 'str'}, 1528 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 1529 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 1530 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 1531 'error': {'key': 'error', 'type': 'JobErrorDetails'}, 1532 'job_type': {'key': 'properties.jobType', 'type': 'str'}, 1533 'current_stage': {'key': 'properties.currentStage', 'type': 'str'}, 1534 'download_progress': {'key': 'properties.downloadProgress', 'type': 'UpdateDownloadProgress'}, 1535 'install_progress': {'key': 'properties.installProgress', 'type': 'UpdateInstallProgress'}, 1536 'total_refresh_errors': {'key': 'properties.totalRefreshErrors', 'type': 'int'}, 1537 'error_manifest_file': {'key': 'properties.errorManifestFile', 'type': 'str'}, 1538 'refreshed_entity_id': {'key': 'properties.refreshedEntityId', 'type': 'str'}, 1539 'folder': {'key': 'properties.folder', 'type': 'str'}, 1540 } 1541 1542 def __init__( 1543 self, 1544 *, 1545 folder: Optional[str] = None, 1546 **kwargs 1547 ): 1548 super(Job, self).__init__(**kwargs) 1549 self.id = None 1550 self.name = None 1551 self.type = None 1552 self.status = None 1553 self.start_time = None 1554 self.end_time = None 1555 self.percent_complete = None 1556 self.error = None 1557 self.job_type = None 1558 self.current_stage = None 1559 self.download_progress = None 1560 self.install_progress = None 1561 self.total_refresh_errors = None 1562 self.error_manifest_file = None 1563 self.refreshed_entity_id = None 1564 self.folder = folder 1565 1566 1567class JobErrorDetails(msrest.serialization.Model): 1568 """The job error information containing the list of job errors. 1569 1570 Variables are only populated by the server, and will be ignored when sending a request. 1571 1572 :ivar error_details: The error details. 1573 :vartype error_details: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.JobErrorItem] 1574 :ivar code: The code intended for programmatic access. 1575 :vartype code: str 1576 :ivar message: The message that describes the error in detail. 1577 :vartype message: str 1578 """ 1579 1580 _validation = { 1581 'error_details': {'readonly': True}, 1582 'code': {'readonly': True}, 1583 'message': {'readonly': True}, 1584 } 1585 1586 _attribute_map = { 1587 'error_details': {'key': 'errorDetails', 'type': '[JobErrorItem]'}, 1588 'code': {'key': 'code', 'type': 'str'}, 1589 'message': {'key': 'message', 'type': 'str'}, 1590 } 1591 1592 def __init__( 1593 self, 1594 **kwargs 1595 ): 1596 super(JobErrorDetails, self).__init__(**kwargs) 1597 self.error_details = None 1598 self.code = None 1599 self.message = None 1600 1601 1602class JobErrorItem(msrest.serialization.Model): 1603 """The job error items. 1604 1605 Variables are only populated by the server, and will be ignored when sending a request. 1606 1607 :ivar recommendations: The recommended actions. 1608 :vartype recommendations: list[str] 1609 :ivar code: The code intended for programmatic access. 1610 :vartype code: str 1611 :ivar message: The message that describes the error in detail. 1612 :vartype message: str 1613 """ 1614 1615 _validation = { 1616 'recommendations': {'readonly': True}, 1617 'code': {'readonly': True}, 1618 'message': {'readonly': True}, 1619 } 1620 1621 _attribute_map = { 1622 'recommendations': {'key': 'recommendations', 'type': '[str]'}, 1623 'code': {'key': 'code', 'type': 'str'}, 1624 'message': {'key': 'message', 'type': 'str'}, 1625 } 1626 1627 def __init__( 1628 self, 1629 **kwargs 1630 ): 1631 super(JobErrorItem, self).__init__(**kwargs) 1632 self.recommendations = None 1633 self.code = None 1634 self.message = None 1635 1636 1637class MetricDimensionV1(msrest.serialization.Model): 1638 """Metric Dimension v1. 1639 1640 :param name: Name of the metrics dimension. 1641 :type name: str 1642 :param display_name: Display name of the metrics dimension. 1643 :type display_name: str 1644 :param to_be_exported_for_shoebox: To be exported to shoe box. 1645 :type to_be_exported_for_shoebox: bool 1646 """ 1647 1648 _attribute_map = { 1649 'name': {'key': 'name', 'type': 'str'}, 1650 'display_name': {'key': 'displayName', 'type': 'str'}, 1651 'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'}, 1652 } 1653 1654 def __init__( 1655 self, 1656 *, 1657 name: Optional[str] = None, 1658 display_name: Optional[str] = None, 1659 to_be_exported_for_shoebox: Optional[bool] = None, 1660 **kwargs 1661 ): 1662 super(MetricDimensionV1, self).__init__(**kwargs) 1663 self.name = name 1664 self.display_name = display_name 1665 self.to_be_exported_for_shoebox = to_be_exported_for_shoebox 1666 1667 1668class MetricSpecificationV1(msrest.serialization.Model): 1669 """Metric specification version 1. 1670 1671 :param name: Name of the metric. 1672 :type name: str 1673 :param display_name: Display name of the metric. 1674 :type display_name: str 1675 :param display_description: Description of the metric to be displayed. 1676 :type display_description: str 1677 :param unit: Metric units. Possible values include: "NotSpecified", "Percent", "Count", 1678 "Seconds", "Milliseconds", "Bytes", "BytesPerSecond", "CountPerSecond". 1679 :type unit: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricUnit 1680 :param aggregation_type: Metric aggregation type. Possible values include: "NotSpecified", 1681 "None", "Average", "Minimum", "Maximum", "Total", "Count". 1682 :type aggregation_type: str or 1683 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricAggregationType 1684 :param dimensions: Metric dimensions, other than default dimension which is resource. 1685 :type dimensions: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricDimensionV1] 1686 :param fill_gap_with_zero: Set true to fill the gaps with zero. 1687 :type fill_gap_with_zero: bool 1688 :param category: Metric category. Possible values include: "Capacity", "Transaction". 1689 :type category: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricCategory 1690 :param resource_id_dimension_name_override: Resource name override. 1691 :type resource_id_dimension_name_override: str 1692 :param supported_time_grain_types: Support granularity of metrics. 1693 :type supported_time_grain_types: list[str or 1694 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.TimeGrain] 1695 :param supported_aggregation_types: Support metric aggregation type. 1696 :type supported_aggregation_types: list[str or 1697 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricAggregationType] 1698 """ 1699 1700 _attribute_map = { 1701 'name': {'key': 'name', 'type': 'str'}, 1702 'display_name': {'key': 'displayName', 'type': 'str'}, 1703 'display_description': {'key': 'displayDescription', 'type': 'str'}, 1704 'unit': {'key': 'unit', 'type': 'str'}, 1705 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, 1706 'dimensions': {'key': 'dimensions', 'type': '[MetricDimensionV1]'}, 1707 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, 1708 'category': {'key': 'category', 'type': 'str'}, 1709 'resource_id_dimension_name_override': {'key': 'resourceIdDimensionNameOverride', 'type': 'str'}, 1710 'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'}, 1711 'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'}, 1712 } 1713 1714 def __init__( 1715 self, 1716 *, 1717 name: Optional[str] = None, 1718 display_name: Optional[str] = None, 1719 display_description: Optional[str] = None, 1720 unit: Optional[Union[str, "MetricUnit"]] = None, 1721 aggregation_type: Optional[Union[str, "MetricAggregationType"]] = None, 1722 dimensions: Optional[List["MetricDimensionV1"]] = None, 1723 fill_gap_with_zero: Optional[bool] = None, 1724 category: Optional[Union[str, "MetricCategory"]] = None, 1725 resource_id_dimension_name_override: Optional[str] = None, 1726 supported_time_grain_types: Optional[List[Union[str, "TimeGrain"]]] = None, 1727 supported_aggregation_types: Optional[List[Union[str, "MetricAggregationType"]]] = None, 1728 **kwargs 1729 ): 1730 super(MetricSpecificationV1, self).__init__(**kwargs) 1731 self.name = name 1732 self.display_name = display_name 1733 self.display_description = display_description 1734 self.unit = unit 1735 self.aggregation_type = aggregation_type 1736 self.dimensions = dimensions 1737 self.fill_gap_with_zero = fill_gap_with_zero 1738 self.category = category 1739 self.resource_id_dimension_name_override = resource_id_dimension_name_override 1740 self.supported_time_grain_types = supported_time_grain_types 1741 self.supported_aggregation_types = supported_aggregation_types 1742 1743 1744class MountPointMap(msrest.serialization.Model): 1745 """The share mount point. 1746 1747 Variables are only populated by the server, and will be ignored when sending a request. 1748 1749 All required parameters must be populated in order to send to Azure. 1750 1751 :param share_id: Required. ID of the share mounted to the role VM. 1752 :type share_id: str 1753 :ivar role_id: ID of the role to which share is mounted. 1754 :vartype role_id: str 1755 :ivar mount_point: Mount point for the share. 1756 :vartype mount_point: str 1757 :ivar mount_type: Mounting type. Possible values include: "Volume", "HostPath". 1758 :vartype mount_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MountType 1759 :ivar role_type: Role type. Possible values include: "IOT", "ASA", "Functions", "Cognitive". 1760 :vartype role_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleTypes 1761 """ 1762 1763 _validation = { 1764 'share_id': {'required': True}, 1765 'role_id': {'readonly': True}, 1766 'mount_point': {'readonly': True}, 1767 'mount_type': {'readonly': True}, 1768 'role_type': {'readonly': True}, 1769 } 1770 1771 _attribute_map = { 1772 'share_id': {'key': 'shareId', 'type': 'str'}, 1773 'role_id': {'key': 'roleId', 'type': 'str'}, 1774 'mount_point': {'key': 'mountPoint', 'type': 'str'}, 1775 'mount_type': {'key': 'mountType', 'type': 'str'}, 1776 'role_type': {'key': 'roleType', 'type': 'str'}, 1777 } 1778 1779 def __init__( 1780 self, 1781 *, 1782 share_id: str, 1783 **kwargs 1784 ): 1785 super(MountPointMap, self).__init__(**kwargs) 1786 self.share_id = share_id 1787 self.role_id = None 1788 self.mount_point = None 1789 self.mount_type = None 1790 self.role_type = None 1791 1792 1793class NetworkAdapter(msrest.serialization.Model): 1794 """Represents the networkAdapter on a device. 1795 1796 Variables are only populated by the server, and will be ignored when sending a request. 1797 1798 :ivar adapter_id: Instance ID of network adapter. 1799 :vartype adapter_id: str 1800 :ivar adapter_position: Hardware position of network adapter. 1801 :vartype adapter_position: 1802 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkAdapterPosition 1803 :ivar index: Logical index of the adapter. 1804 :vartype index: int 1805 :ivar node_id: Node ID of the network adapter. 1806 :vartype node_id: str 1807 :ivar network_adapter_name: Network adapter name. 1808 :vartype network_adapter_name: str 1809 :ivar label: Hardware label for the adapter. 1810 :vartype label: str 1811 :ivar mac_address: MAC address. 1812 :vartype mac_address: str 1813 :ivar link_speed: Link speed. 1814 :vartype link_speed: long 1815 :ivar status: Value indicating whether this adapter is valid. Possible values include: 1816 "Inactive", "Active". 1817 :vartype status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkAdapterStatus 1818 :param rdma_status: Value indicating whether this adapter is RDMA capable. Possible values 1819 include: "Incapable", "Capable". 1820 :type rdma_status: str or 1821 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkAdapterRDMAStatus 1822 :param dhcp_status: Value indicating whether this adapter has DHCP enabled. Possible values 1823 include: "Disabled", "Enabled". 1824 :type dhcp_status: str or 1825 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkAdapterDHCPStatus 1826 :ivar ipv4_configuration: The IPv4 configuration of the network adapter. 1827 :vartype ipv4_configuration: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.Ipv4Config 1828 :ivar ipv6_configuration: The IPv6 configuration of the network adapter. 1829 :vartype ipv6_configuration: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.Ipv6Config 1830 :ivar ipv6_link_local_address: The IPv6 local address. 1831 :vartype ipv6_link_local_address: str 1832 :ivar dns_servers: The list of DNS Servers of the device. 1833 :vartype dns_servers: list[str] 1834 """ 1835 1836 _validation = { 1837 'adapter_id': {'readonly': True}, 1838 'adapter_position': {'readonly': True}, 1839 'index': {'readonly': True}, 1840 'node_id': {'readonly': True}, 1841 'network_adapter_name': {'readonly': True}, 1842 'label': {'readonly': True}, 1843 'mac_address': {'readonly': True}, 1844 'link_speed': {'readonly': True}, 1845 'status': {'readonly': True}, 1846 'ipv4_configuration': {'readonly': True}, 1847 'ipv6_configuration': {'readonly': True}, 1848 'ipv6_link_local_address': {'readonly': True}, 1849 'dns_servers': {'readonly': True}, 1850 } 1851 1852 _attribute_map = { 1853 'adapter_id': {'key': 'adapterId', 'type': 'str'}, 1854 'adapter_position': {'key': 'adapterPosition', 'type': 'NetworkAdapterPosition'}, 1855 'index': {'key': 'index', 'type': 'int'}, 1856 'node_id': {'key': 'nodeId', 'type': 'str'}, 1857 'network_adapter_name': {'key': 'networkAdapterName', 'type': 'str'}, 1858 'label': {'key': 'label', 'type': 'str'}, 1859 'mac_address': {'key': 'macAddress', 'type': 'str'}, 1860 'link_speed': {'key': 'linkSpeed', 'type': 'long'}, 1861 'status': {'key': 'status', 'type': 'str'}, 1862 'rdma_status': {'key': 'rdmaStatus', 'type': 'str'}, 1863 'dhcp_status': {'key': 'dhcpStatus', 'type': 'str'}, 1864 'ipv4_configuration': {'key': 'ipv4Configuration', 'type': 'Ipv4Config'}, 1865 'ipv6_configuration': {'key': 'ipv6Configuration', 'type': 'Ipv6Config'}, 1866 'ipv6_link_local_address': {'key': 'ipv6LinkLocalAddress', 'type': 'str'}, 1867 'dns_servers': {'key': 'dnsServers', 'type': '[str]'}, 1868 } 1869 1870 def __init__( 1871 self, 1872 *, 1873 rdma_status: Optional[Union[str, "NetworkAdapterRDMAStatus"]] = None, 1874 dhcp_status: Optional[Union[str, "NetworkAdapterDHCPStatus"]] = None, 1875 **kwargs 1876 ): 1877 super(NetworkAdapter, self).__init__(**kwargs) 1878 self.adapter_id = None 1879 self.adapter_position = None 1880 self.index = None 1881 self.node_id = None 1882 self.network_adapter_name = None 1883 self.label = None 1884 self.mac_address = None 1885 self.link_speed = None 1886 self.status = None 1887 self.rdma_status = rdma_status 1888 self.dhcp_status = dhcp_status 1889 self.ipv4_configuration = None 1890 self.ipv6_configuration = None 1891 self.ipv6_link_local_address = None 1892 self.dns_servers = None 1893 1894 1895class NetworkAdapterPosition(msrest.serialization.Model): 1896 """The network adapter position. 1897 1898 Variables are only populated by the server, and will be ignored when sending a request. 1899 1900 :ivar network_group: The network group. Possible values include: "None", "NonRDMA", "RDMA". 1901 :vartype network_group: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkGroup 1902 :ivar port: The port. 1903 :vartype port: int 1904 """ 1905 1906 _validation = { 1907 'network_group': {'readonly': True}, 1908 'port': {'readonly': True}, 1909 } 1910 1911 _attribute_map = { 1912 'network_group': {'key': 'networkGroup', 'type': 'str'}, 1913 'port': {'key': 'port', 'type': 'int'}, 1914 } 1915 1916 def __init__( 1917 self, 1918 **kwargs 1919 ): 1920 super(NetworkAdapterPosition, self).__init__(**kwargs) 1921 self.network_group = None 1922 self.port = None 1923 1924 1925class NetworkSettings(ARMBaseModel): 1926 """The network settings of a device. 1927 1928 Variables are only populated by the server, and will be ignored when sending a request. 1929 1930 :ivar id: The path ID that uniquely identifies the object. 1931 :vartype id: str 1932 :ivar name: The object name. 1933 :vartype name: str 1934 :ivar type: The hierarchical type of the object. 1935 :vartype type: str 1936 :ivar network_adapters: The network adapter list on the device. 1937 :vartype network_adapters: 1938 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.NetworkAdapter] 1939 """ 1940 1941 _validation = { 1942 'id': {'readonly': True}, 1943 'name': {'readonly': True}, 1944 'type': {'readonly': True}, 1945 'network_adapters': {'readonly': True}, 1946 } 1947 1948 _attribute_map = { 1949 'id': {'key': 'id', 'type': 'str'}, 1950 'name': {'key': 'name', 'type': 'str'}, 1951 'type': {'key': 'type', 'type': 'str'}, 1952 'network_adapters': {'key': 'properties.networkAdapters', 'type': '[NetworkAdapter]'}, 1953 } 1954 1955 def __init__( 1956 self, 1957 **kwargs 1958 ): 1959 super(NetworkSettings, self).__init__(**kwargs) 1960 self.network_adapters = None 1961 1962 1963class Node(ARMBaseModel): 1964 """Represents a single node in a Data box Edge/Gateway device 1965Gateway devices, standalone Edge devices and a single node cluster Edge device will all have 1 node 1966Multi-node Edge devices will have more than 1 nodes. 1967 1968 Variables are only populated by the server, and will be ignored when sending a request. 1969 1970 :ivar id: The path ID that uniquely identifies the object. 1971 :vartype id: str 1972 :ivar name: The object name. 1973 :vartype name: str 1974 :ivar type: The hierarchical type of the object. 1975 :vartype type: str 1976 :ivar node_status: The current status of the individual node. Possible values include: 1977 "Unknown", "Up", "Down", "Rebooting", "ShuttingDown". 1978 :vartype node_status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.NodeStatus 1979 :ivar node_chassis_serial_number: Serial number of the Chassis. 1980 :vartype node_chassis_serial_number: str 1981 :ivar node_serial_number: Serial number of the individual node. 1982 :vartype node_serial_number: str 1983 :ivar node_display_name: Display Name of the individual node. 1984 :vartype node_display_name: str 1985 :ivar node_friendly_software_version: Friendly software version name that is currently 1986 installed on the node. 1987 :vartype node_friendly_software_version: str 1988 :ivar node_hcs_version: HCS version that is currently installed on the node. 1989 :vartype node_hcs_version: str 1990 :ivar node_instance_id: Guid instance id of the node. 1991 :vartype node_instance_id: str 1992 """ 1993 1994 _validation = { 1995 'id': {'readonly': True}, 1996 'name': {'readonly': True}, 1997 'type': {'readonly': True}, 1998 'node_status': {'readonly': True}, 1999 'node_chassis_serial_number': {'readonly': True}, 2000 'node_serial_number': {'readonly': True}, 2001 'node_display_name': {'readonly': True}, 2002 'node_friendly_software_version': {'readonly': True}, 2003 'node_hcs_version': {'readonly': True}, 2004 'node_instance_id': {'readonly': True}, 2005 } 2006 2007 _attribute_map = { 2008 'id': {'key': 'id', 'type': 'str'}, 2009 'name': {'key': 'name', 'type': 'str'}, 2010 'type': {'key': 'type', 'type': 'str'}, 2011 'node_status': {'key': 'properties.nodeStatus', 'type': 'str'}, 2012 'node_chassis_serial_number': {'key': 'properties.nodeChassisSerialNumber', 'type': 'str'}, 2013 'node_serial_number': {'key': 'properties.nodeSerialNumber', 'type': 'str'}, 2014 'node_display_name': {'key': 'properties.nodeDisplayName', 'type': 'str'}, 2015 'node_friendly_software_version': {'key': 'properties.nodeFriendlySoftwareVersion', 'type': 'str'}, 2016 'node_hcs_version': {'key': 'properties.nodeHcsVersion', 'type': 'str'}, 2017 'node_instance_id': {'key': 'properties.nodeInstanceId', 'type': 'str'}, 2018 } 2019 2020 def __init__( 2021 self, 2022 **kwargs 2023 ): 2024 super(Node, self).__init__(**kwargs) 2025 self.node_status = None 2026 self.node_chassis_serial_number = None 2027 self.node_serial_number = None 2028 self.node_display_name = None 2029 self.node_friendly_software_version = None 2030 self.node_hcs_version = None 2031 self.node_instance_id = None 2032 2033 2034class NodeList(msrest.serialization.Model): 2035 """Collection of Nodes. 2036 2037 Variables are only populated by the server, and will be ignored when sending a request. 2038 2039 :ivar value: The list of Nodes. 2040 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Node] 2041 """ 2042 2043 _validation = { 2044 'value': {'readonly': True}, 2045 } 2046 2047 _attribute_map = { 2048 'value': {'key': 'value', 'type': '[Node]'}, 2049 } 2050 2051 def __init__( 2052 self, 2053 **kwargs 2054 ): 2055 super(NodeList, self).__init__(**kwargs) 2056 self.value = None 2057 2058 2059class Operation(msrest.serialization.Model): 2060 """Operations. 2061 2062 :param name: Name of the operation. 2063 :type name: str 2064 :param display: Properties displayed for the operation. 2065 :type display: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.OperationDisplay 2066 :param origin: Origin of the operation. 2067 :type origin: str 2068 :param service_specification: Service specification. 2069 :type service_specification: 2070 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ServiceSpecification 2071 """ 2072 2073 _attribute_map = { 2074 'name': {'key': 'name', 'type': 'str'}, 2075 'display': {'key': 'display', 'type': 'OperationDisplay'}, 2076 'origin': {'key': 'origin', 'type': 'str'}, 2077 'service_specification': {'key': 'properties.serviceSpecification', 'type': 'ServiceSpecification'}, 2078 } 2079 2080 def __init__( 2081 self, 2082 *, 2083 name: Optional[str] = None, 2084 display: Optional["OperationDisplay"] = None, 2085 origin: Optional[str] = None, 2086 service_specification: Optional["ServiceSpecification"] = None, 2087 **kwargs 2088 ): 2089 super(Operation, self).__init__(**kwargs) 2090 self.name = name 2091 self.display = display 2092 self.origin = origin 2093 self.service_specification = service_specification 2094 2095 2096class OperationDisplay(msrest.serialization.Model): 2097 """Operation display properties. 2098 2099 :param provider: Provider name. 2100 :type provider: str 2101 :param resource: The type of resource in which the operation is performed. 2102 :type resource: str 2103 :param operation: Operation to be performed on the resource. 2104 :type operation: str 2105 :param description: Description of the operation to be performed. 2106 :type description: str 2107 """ 2108 2109 _attribute_map = { 2110 'provider': {'key': 'provider', 'type': 'str'}, 2111 'resource': {'key': 'resource', 'type': 'str'}, 2112 'operation': {'key': 'operation', 'type': 'str'}, 2113 'description': {'key': 'description', 'type': 'str'}, 2114 } 2115 2116 def __init__( 2117 self, 2118 *, 2119 provider: Optional[str] = None, 2120 resource: Optional[str] = None, 2121 operation: Optional[str] = None, 2122 description: Optional[str] = None, 2123 **kwargs 2124 ): 2125 super(OperationDisplay, self).__init__(**kwargs) 2126 self.provider = provider 2127 self.resource = resource 2128 self.operation = operation 2129 self.description = description 2130 2131 2132class OperationsList(msrest.serialization.Model): 2133 """The list of operations used for the discovery of available provider operations. 2134 2135 All required parameters must be populated in order to send to Azure. 2136 2137 :param value: Required. The value. 2138 :type value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Operation] 2139 :param next_link: Link to the next set of results. 2140 :type next_link: str 2141 """ 2142 2143 _validation = { 2144 'value': {'required': True}, 2145 } 2146 2147 _attribute_map = { 2148 'value': {'key': 'value', 'type': '[Operation]'}, 2149 'next_link': {'key': 'nextLink', 'type': 'str'}, 2150 } 2151 2152 def __init__( 2153 self, 2154 *, 2155 value: List["Operation"], 2156 next_link: Optional[str] = None, 2157 **kwargs 2158 ): 2159 super(OperationsList, self).__init__(**kwargs) 2160 self.value = value 2161 self.next_link = next_link 2162 2163 2164class Order(ARMBaseModel): 2165 """The order details. 2166 2167 Variables are only populated by the server, and will be ignored when sending a request. 2168 2169 :ivar id: The path ID that uniquely identifies the object. 2170 :vartype id: str 2171 :ivar name: The object name. 2172 :vartype name: str 2173 :ivar type: The hierarchical type of the object. 2174 :vartype type: str 2175 :param contact_information: The contact details. 2176 :type contact_information: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ContactDetails 2177 :param shipping_address: The shipping address. 2178 :type shipping_address: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.Address 2179 :param current_status: Current status of the order. 2180 :type current_status: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.OrderStatus 2181 :ivar order_history: List of status changes in the order. 2182 :vartype order_history: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.OrderStatus] 2183 :ivar serial_number: Serial number of the device. 2184 :vartype serial_number: str 2185 :ivar delivery_tracking_info: Tracking information for the package delivered to the customer 2186 whether it has an original or a replacement device. 2187 :vartype delivery_tracking_info: 2188 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.TrackingInfo] 2189 :ivar return_tracking_info: Tracking information for the package returned from the customer 2190 whether it has an original or a replacement device. 2191 :vartype return_tracking_info: 2192 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.TrackingInfo] 2193 """ 2194 2195 _validation = { 2196 'id': {'readonly': True}, 2197 'name': {'readonly': True}, 2198 'type': {'readonly': True}, 2199 'order_history': {'readonly': True}, 2200 'serial_number': {'readonly': True}, 2201 'delivery_tracking_info': {'readonly': True}, 2202 'return_tracking_info': {'readonly': True}, 2203 } 2204 2205 _attribute_map = { 2206 'id': {'key': 'id', 'type': 'str'}, 2207 'name': {'key': 'name', 'type': 'str'}, 2208 'type': {'key': 'type', 'type': 'str'}, 2209 'contact_information': {'key': 'properties.contactInformation', 'type': 'ContactDetails'}, 2210 'shipping_address': {'key': 'properties.shippingAddress', 'type': 'Address'}, 2211 'current_status': {'key': 'properties.currentStatus', 'type': 'OrderStatus'}, 2212 'order_history': {'key': 'properties.orderHistory', 'type': '[OrderStatus]'}, 2213 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 2214 'delivery_tracking_info': {'key': 'properties.deliveryTrackingInfo', 'type': '[TrackingInfo]'}, 2215 'return_tracking_info': {'key': 'properties.returnTrackingInfo', 'type': '[TrackingInfo]'}, 2216 } 2217 2218 def __init__( 2219 self, 2220 *, 2221 contact_information: Optional["ContactDetails"] = None, 2222 shipping_address: Optional["Address"] = None, 2223 current_status: Optional["OrderStatus"] = None, 2224 **kwargs 2225 ): 2226 super(Order, self).__init__(**kwargs) 2227 self.contact_information = contact_information 2228 self.shipping_address = shipping_address 2229 self.current_status = current_status 2230 self.order_history = None 2231 self.serial_number = None 2232 self.delivery_tracking_info = None 2233 self.return_tracking_info = None 2234 2235 2236class OrderList(msrest.serialization.Model): 2237 """List of order entities. 2238 2239 Variables are only populated by the server, and will be ignored when sending a request. 2240 2241 :ivar value: The list of orders. 2242 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Order] 2243 :ivar next_link: Link to the next set of results. 2244 :vartype next_link: str 2245 """ 2246 2247 _validation = { 2248 'value': {'readonly': True}, 2249 'next_link': {'readonly': True}, 2250 } 2251 2252 _attribute_map = { 2253 'value': {'key': 'value', 'type': '[Order]'}, 2254 'next_link': {'key': 'nextLink', 'type': 'str'}, 2255 } 2256 2257 def __init__( 2258 self, 2259 **kwargs 2260 ): 2261 super(OrderList, self).__init__(**kwargs) 2262 self.value = None 2263 self.next_link = None 2264 2265 2266class OrderStatus(msrest.serialization.Model): 2267 """Represents a single status change. 2268 2269 Variables are only populated by the server, and will be ignored when sending a request. 2270 2271 All required parameters must be populated in order to send to Azure. 2272 2273 :param status: Required. Status of the order as per the allowed status types. Possible values 2274 include: "Untracked", "AwaitingFulfilment", "AwaitingPreparation", "AwaitingShipment", 2275 "Shipped", "Arriving", "Delivered", "ReplacementRequested", "LostDevice", "Declined", 2276 "ReturnInitiated", "AwaitingReturnShipment", "ShippedBack", "CollectedAtMicrosoft". 2277 :type status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.OrderState 2278 :ivar update_date_time: Time of status update. 2279 :vartype update_date_time: ~datetime.datetime 2280 :param comments: Comments related to this status change. 2281 :type comments: str 2282 :ivar additional_order_details: Dictionary to hold generic information which is not stored 2283 by the already existing properties. 2284 :vartype additional_order_details: dict[str, str] 2285 """ 2286 2287 _validation = { 2288 'status': {'required': True}, 2289 'update_date_time': {'readonly': True}, 2290 'additional_order_details': {'readonly': True}, 2291 } 2292 2293 _attribute_map = { 2294 'status': {'key': 'status', 'type': 'str'}, 2295 'update_date_time': {'key': 'updateDateTime', 'type': 'iso-8601'}, 2296 'comments': {'key': 'comments', 'type': 'str'}, 2297 'additional_order_details': {'key': 'additionalOrderDetails', 'type': '{str}'}, 2298 } 2299 2300 def __init__( 2301 self, 2302 *, 2303 status: Union[str, "OrderState"], 2304 comments: Optional[str] = None, 2305 **kwargs 2306 ): 2307 super(OrderStatus, self).__init__(**kwargs) 2308 self.status = status 2309 self.update_date_time = None 2310 self.comments = comments 2311 self.additional_order_details = None 2312 2313 2314class PeriodicTimerEventTrigger(Trigger): 2315 """Trigger details. 2316 2317 Variables are only populated by the server, and will be ignored when sending a request. 2318 2319 All required parameters must be populated in order to send to Azure. 2320 2321 :ivar id: The path ID that uniquely identifies the object. 2322 :vartype id: str 2323 :ivar name: The object name. 2324 :vartype name: str 2325 :ivar type: The hierarchical type of the object. 2326 :vartype type: str 2327 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 2328 "FileEvent", "PeriodicTimerEvent". 2329 :type kind: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.TriggerEventType 2330 :param source_info: Required. Periodic timer details. 2331 :type source_info: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.PeriodicTimerSourceInfo 2332 :param sink_info: Required. Role Sink information. 2333 :type sink_info: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RoleSinkInfo 2334 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 2335 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 2336 modules in the device, the tag can be the name or the image URL of the module. 2337 :type custom_context_tag: str 2338 """ 2339 2340 _validation = { 2341 'id': {'readonly': True}, 2342 'name': {'readonly': True}, 2343 'type': {'readonly': True}, 2344 'kind': {'required': True}, 2345 'source_info': {'required': True}, 2346 'sink_info': {'required': True}, 2347 } 2348 2349 _attribute_map = { 2350 'id': {'key': 'id', 'type': 'str'}, 2351 'name': {'key': 'name', 'type': 'str'}, 2352 'type': {'key': 'type', 'type': 'str'}, 2353 'kind': {'key': 'kind', 'type': 'str'}, 2354 'source_info': {'key': 'properties.sourceInfo', 'type': 'PeriodicTimerSourceInfo'}, 2355 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 2356 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 2357 } 2358 2359 def __init__( 2360 self, 2361 *, 2362 source_info: "PeriodicTimerSourceInfo", 2363 sink_info: "RoleSinkInfo", 2364 custom_context_tag: Optional[str] = None, 2365 **kwargs 2366 ): 2367 super(PeriodicTimerEventTrigger, self).__init__(**kwargs) 2368 self.kind = 'PeriodicTimerEvent' # type: str 2369 self.source_info = source_info 2370 self.sink_info = sink_info 2371 self.custom_context_tag = custom_context_tag 2372 2373 2374class PeriodicTimerSourceInfo(msrest.serialization.Model): 2375 """Periodic timer event source. 2376 2377 All required parameters must be populated in order to send to Azure. 2378 2379 :param start_time: Required. The time of the day that results in a valid trigger. Schedule is 2380 computed with reference to the time specified upto seconds. If timezone is not specified the 2381 time will considered to be in device timezone. The value will always be returned as UTC time. 2382 :type start_time: ~datetime.datetime 2383 :param schedule: Required. Periodic frequency at which timer event needs to be raised. Supports 2384 daily, hourly, minutes, and seconds. 2385 :type schedule: str 2386 :param topic: Topic where periodic events are published to IoT device. 2387 :type topic: str 2388 """ 2389 2390 _validation = { 2391 'start_time': {'required': True}, 2392 'schedule': {'required': True}, 2393 } 2394 2395 _attribute_map = { 2396 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 2397 'schedule': {'key': 'schedule', 'type': 'str'}, 2398 'topic': {'key': 'topic', 'type': 'str'}, 2399 } 2400 2401 def __init__( 2402 self, 2403 *, 2404 start_time: datetime.datetime, 2405 schedule: str, 2406 topic: Optional[str] = None, 2407 **kwargs 2408 ): 2409 super(PeriodicTimerSourceInfo, self).__init__(**kwargs) 2410 self.start_time = start_time 2411 self.schedule = schedule 2412 self.topic = topic 2413 2414 2415class RefreshDetails(msrest.serialization.Model): 2416 """Fields for tracking refresh job on the share or container. 2417 2418 :param in_progress_refresh_job_id: If a refresh job is currently in progress on this share or 2419 container, this field indicates the ARM resource ID of that job. The field is empty if no job 2420 is in progress. 2421 :type in_progress_refresh_job_id: str 2422 :param last_completed_refresh_job_time_in_utc: Indicates the completed time for the last 2423 refresh job on this particular share or container, if any.This could be a failed job or a 2424 successful job. 2425 :type last_completed_refresh_job_time_in_utc: ~datetime.datetime 2426 :param error_manifest_file: Indicates the relative path of the error xml for the last refresh 2427 job on this particular share or container, if any. This could be a failed job or a successful 2428 job. 2429 :type error_manifest_file: str 2430 :param last_job: Indicates the id of the last refresh job on this particular share or 2431 container,if any. This could be a failed job or a successful job. 2432 :type last_job: str 2433 """ 2434 2435 _attribute_map = { 2436 'in_progress_refresh_job_id': {'key': 'inProgressRefreshJobId', 'type': 'str'}, 2437 'last_completed_refresh_job_time_in_utc': {'key': 'lastCompletedRefreshJobTimeInUTC', 'type': 'iso-8601'}, 2438 'error_manifest_file': {'key': 'errorManifestFile', 'type': 'str'}, 2439 'last_job': {'key': 'lastJob', 'type': 'str'}, 2440 } 2441 2442 def __init__( 2443 self, 2444 *, 2445 in_progress_refresh_job_id: Optional[str] = None, 2446 last_completed_refresh_job_time_in_utc: Optional[datetime.datetime] = None, 2447 error_manifest_file: Optional[str] = None, 2448 last_job: Optional[str] = None, 2449 **kwargs 2450 ): 2451 super(RefreshDetails, self).__init__(**kwargs) 2452 self.in_progress_refresh_job_id = in_progress_refresh_job_id 2453 self.last_completed_refresh_job_time_in_utc = last_completed_refresh_job_time_in_utc 2454 self.error_manifest_file = error_manifest_file 2455 self.last_job = last_job 2456 2457 2458class ResourceTypeSku(msrest.serialization.Model): 2459 """SkuInformation object. 2460 2461 Variables are only populated by the server, and will be ignored when sending a request. 2462 2463 :ivar resource_type: The type of the resource. 2464 :vartype resource_type: str 2465 :ivar name: The Sku name. Possible values include: "Gateway", "Edge", "TEA_1Node", 2466 "TEA_1Node_UPS", "TEA_1Node_Heater", "TEA_1Node_UPS_Heater", "TEA_4Node_Heater", 2467 "TEA_4Node_UPS_Heater", "TMA", "TDC", "TCA_Large", "TCA_Small", "GPU". 2468 :vartype name: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuName 2469 :ivar kind: The Sku kind. 2470 :vartype kind: str 2471 :ivar tier: The Sku tier. Possible values include: "Standard". 2472 :vartype tier: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuTier 2473 :ivar family: The Sku family. 2474 :vartype family: str 2475 :ivar locations: Availability of the SKU for the region. 2476 :vartype locations: list[str] 2477 :ivar api_versions: The API versions in which SKU is available. 2478 :vartype api_versions: list[str] 2479 :ivar location_info: Availability of the SKU for the location/zone. 2480 :vartype location_info: 2481 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuLocationInfo] 2482 :ivar costs: The pricing info of the Sku. 2483 :vartype costs: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuCost] 2484 :ivar restrictions: Restrictions of the SKU availability. 2485 :vartype restrictions: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuRestriction] 2486 """ 2487 2488 _validation = { 2489 'resource_type': {'readonly': True}, 2490 'name': {'readonly': True}, 2491 'kind': {'readonly': True}, 2492 'tier': {'readonly': True}, 2493 'family': {'readonly': True}, 2494 'locations': {'readonly': True}, 2495 'api_versions': {'readonly': True}, 2496 'location_info': {'readonly': True}, 2497 'costs': {'readonly': True}, 2498 'restrictions': {'readonly': True}, 2499 } 2500 2501 _attribute_map = { 2502 'resource_type': {'key': 'resourceType', 'type': 'str'}, 2503 'name': {'key': 'name', 'type': 'str'}, 2504 'kind': {'key': 'kind', 'type': 'str'}, 2505 'tier': {'key': 'tier', 'type': 'str'}, 2506 'family': {'key': 'family', 'type': 'str'}, 2507 'locations': {'key': 'locations', 'type': '[str]'}, 2508 'api_versions': {'key': 'apiVersions', 'type': '[str]'}, 2509 'location_info': {'key': 'locationInfo', 'type': '[SkuLocationInfo]'}, 2510 'costs': {'key': 'costs', 'type': '[SkuCost]'}, 2511 'restrictions': {'key': 'restrictions', 'type': '[SkuRestriction]'}, 2512 } 2513 2514 def __init__( 2515 self, 2516 **kwargs 2517 ): 2518 super(ResourceTypeSku, self).__init__(**kwargs) 2519 self.resource_type = None 2520 self.name = None 2521 self.kind = None 2522 self.tier = None 2523 self.family = None 2524 self.locations = None 2525 self.api_versions = None 2526 self.location_info = None 2527 self.costs = None 2528 self.restrictions = None 2529 2530 2531class RoleList(msrest.serialization.Model): 2532 """Collection of all the roles on the Data Box Edge device. 2533 2534 Variables are only populated by the server, and will be ignored when sending a request. 2535 2536 :ivar value: The Value. 2537 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Role] 2538 :ivar next_link: Link to the next set of results. 2539 :vartype next_link: str 2540 """ 2541 2542 _validation = { 2543 'value': {'readonly': True}, 2544 'next_link': {'readonly': True}, 2545 } 2546 2547 _attribute_map = { 2548 'value': {'key': 'value', 'type': '[Role]'}, 2549 'next_link': {'key': 'nextLink', 'type': 'str'}, 2550 } 2551 2552 def __init__( 2553 self, 2554 **kwargs 2555 ): 2556 super(RoleList, self).__init__(**kwargs) 2557 self.value = None 2558 self.next_link = None 2559 2560 2561class RoleSinkInfo(msrest.serialization.Model): 2562 """Compute role against which events will be raised. 2563 2564 All required parameters must be populated in order to send to Azure. 2565 2566 :param role_id: Required. Compute role ID. 2567 :type role_id: str 2568 """ 2569 2570 _validation = { 2571 'role_id': {'required': True}, 2572 } 2573 2574 _attribute_map = { 2575 'role_id': {'key': 'roleId', 'type': 'str'}, 2576 } 2577 2578 def __init__( 2579 self, 2580 *, 2581 role_id: str, 2582 **kwargs 2583 ): 2584 super(RoleSinkInfo, self).__init__(**kwargs) 2585 self.role_id = role_id 2586 2587 2588class SecuritySettings(ARMBaseModel): 2589 """The security settings of a device. 2590 2591 Variables are only populated by the server, and will be ignored when sending a request. 2592 2593 All required parameters must be populated in order to send to Azure. 2594 2595 :ivar id: The path ID that uniquely identifies the object. 2596 :vartype id: str 2597 :ivar name: The object name. 2598 :vartype name: str 2599 :ivar type: The hierarchical type of the object. 2600 :vartype type: str 2601 :param device_admin_password: Required. Device administrator password as an encrypted string 2602 (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual 2603 password should have at least 8 characters that are a combination of uppercase, lowercase, 2604 numeric, and special characters. 2605 :type device_admin_password: 2606 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AsymmetricEncryptedSecret 2607 """ 2608 2609 _validation = { 2610 'id': {'readonly': True}, 2611 'name': {'readonly': True}, 2612 'type': {'readonly': True}, 2613 'device_admin_password': {'required': True}, 2614 } 2615 2616 _attribute_map = { 2617 'id': {'key': 'id', 'type': 'str'}, 2618 'name': {'key': 'name', 'type': 'str'}, 2619 'type': {'key': 'type', 'type': 'str'}, 2620 'device_admin_password': {'key': 'properties.deviceAdminPassword', 'type': 'AsymmetricEncryptedSecret'}, 2621 } 2622 2623 def __init__( 2624 self, 2625 *, 2626 device_admin_password: "AsymmetricEncryptedSecret", 2627 **kwargs 2628 ): 2629 super(SecuritySettings, self).__init__(**kwargs) 2630 self.device_admin_password = device_admin_password 2631 2632 2633class ServiceSpecification(msrest.serialization.Model): 2634 """Service specification. 2635 2636 :param metric_specifications: Metric specification as defined by shoebox. 2637 :type metric_specifications: 2638 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.MetricSpecificationV1] 2639 """ 2640 2641 _attribute_map = { 2642 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecificationV1]'}, 2643 } 2644 2645 def __init__( 2646 self, 2647 *, 2648 metric_specifications: Optional[List["MetricSpecificationV1"]] = None, 2649 **kwargs 2650 ): 2651 super(ServiceSpecification, self).__init__(**kwargs) 2652 self.metric_specifications = metric_specifications 2653 2654 2655class Share(ARMBaseModel): 2656 """Represents a share on the Data Box Edge/Gateway device. 2657 2658 Variables are only populated by the server, and will be ignored when sending a request. 2659 2660 All required parameters must be populated in order to send to Azure. 2661 2662 :ivar id: The path ID that uniquely identifies the object. 2663 :vartype id: str 2664 :ivar name: The object name. 2665 :vartype name: str 2666 :ivar type: The hierarchical type of the object. 2667 :vartype type: str 2668 :param description: Description for the share. 2669 :type description: str 2670 :param share_status: Required. Current status of the share. Possible values include: "Offline", 2671 "Unknown", "OK", "Updating", "NeedsAttention". 2672 :type share_status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ShareStatus 2673 :param monitoring_status: Required. Current monitoring status of the share. Possible values 2674 include: "Enabled", "Disabled". 2675 :type monitoring_status: str or 2676 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.MonitoringStatus 2677 :param azure_container_info: Azure container mapping for the share. 2678 :type azure_container_info: 2679 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AzureContainerInfo 2680 :param access_protocol: Required. Access protocol to be used by the share. Possible values 2681 include: "SMB", "NFS". 2682 :type access_protocol: str or 2683 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ShareAccessProtocol 2684 :param user_access_rights: Mapping of users and corresponding access rights on the share 2685 (required for SMB protocol). 2686 :type user_access_rights: 2687 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.UserAccessRight] 2688 :param client_access_rights: List of IP addresses and corresponding access rights on the 2689 share(required for NFS protocol). 2690 :type client_access_rights: 2691 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.ClientAccessRight] 2692 :param refresh_details: Details of the refresh job on this share. 2693 :type refresh_details: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.RefreshDetails 2694 :ivar share_mappings: Share mount point to the role. 2695 :vartype share_mappings: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.MountPointMap] 2696 :param data_policy: Data policy of the share. Possible values include: "Cloud", "Local". 2697 :type data_policy: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DataPolicy 2698 """ 2699 2700 _validation = { 2701 'id': {'readonly': True}, 2702 'name': {'readonly': True}, 2703 'type': {'readonly': True}, 2704 'share_status': {'required': True}, 2705 'monitoring_status': {'required': True}, 2706 'access_protocol': {'required': True}, 2707 'share_mappings': {'readonly': True}, 2708 } 2709 2710 _attribute_map = { 2711 'id': {'key': 'id', 'type': 'str'}, 2712 'name': {'key': 'name', 'type': 'str'}, 2713 'type': {'key': 'type', 'type': 'str'}, 2714 'description': {'key': 'properties.description', 'type': 'str'}, 2715 'share_status': {'key': 'properties.shareStatus', 'type': 'str'}, 2716 'monitoring_status': {'key': 'properties.monitoringStatus', 'type': 'str'}, 2717 'azure_container_info': {'key': 'properties.azureContainerInfo', 'type': 'AzureContainerInfo'}, 2718 'access_protocol': {'key': 'properties.accessProtocol', 'type': 'str'}, 2719 'user_access_rights': {'key': 'properties.userAccessRights', 'type': '[UserAccessRight]'}, 2720 'client_access_rights': {'key': 'properties.clientAccessRights', 'type': '[ClientAccessRight]'}, 2721 'refresh_details': {'key': 'properties.refreshDetails', 'type': 'RefreshDetails'}, 2722 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 2723 'data_policy': {'key': 'properties.dataPolicy', 'type': 'str'}, 2724 } 2725 2726 def __init__( 2727 self, 2728 *, 2729 share_status: Union[str, "ShareStatus"], 2730 monitoring_status: Union[str, "MonitoringStatus"], 2731 access_protocol: Union[str, "ShareAccessProtocol"], 2732 description: Optional[str] = None, 2733 azure_container_info: Optional["AzureContainerInfo"] = None, 2734 user_access_rights: Optional[List["UserAccessRight"]] = None, 2735 client_access_rights: Optional[List["ClientAccessRight"]] = None, 2736 refresh_details: Optional["RefreshDetails"] = None, 2737 data_policy: Optional[Union[str, "DataPolicy"]] = None, 2738 **kwargs 2739 ): 2740 super(Share, self).__init__(**kwargs) 2741 self.description = description 2742 self.share_status = share_status 2743 self.monitoring_status = monitoring_status 2744 self.azure_container_info = azure_container_info 2745 self.access_protocol = access_protocol 2746 self.user_access_rights = user_access_rights 2747 self.client_access_rights = client_access_rights 2748 self.refresh_details = refresh_details 2749 self.share_mappings = None 2750 self.data_policy = data_policy 2751 2752 2753class ShareAccessRight(msrest.serialization.Model): 2754 """Specifies the mapping between this particular user and the type of access he has on shares on this device. 2755 2756 All required parameters must be populated in order to send to Azure. 2757 2758 :param share_id: Required. The share ID. 2759 :type share_id: str 2760 :param access_type: Required. Type of access to be allowed on the share for this user. Possible 2761 values include: "Change", "Read", "Custom". 2762 :type access_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ShareAccessType 2763 """ 2764 2765 _validation = { 2766 'share_id': {'required': True}, 2767 'access_type': {'required': True}, 2768 } 2769 2770 _attribute_map = { 2771 'share_id': {'key': 'shareId', 'type': 'str'}, 2772 'access_type': {'key': 'accessType', 'type': 'str'}, 2773 } 2774 2775 def __init__( 2776 self, 2777 *, 2778 share_id: str, 2779 access_type: Union[str, "ShareAccessType"], 2780 **kwargs 2781 ): 2782 super(ShareAccessRight, self).__init__(**kwargs) 2783 self.share_id = share_id 2784 self.access_type = access_type 2785 2786 2787class ShareList(msrest.serialization.Model): 2788 """Collection of all the shares on the Data Box Edge/Gateway device. 2789 2790 Variables are only populated by the server, and will be ignored when sending a request. 2791 2792 :ivar value: The list of shares. 2793 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Share] 2794 :ivar next_link: Link to the next set of results. 2795 :vartype next_link: str 2796 """ 2797 2798 _validation = { 2799 'value': {'readonly': True}, 2800 'next_link': {'readonly': True}, 2801 } 2802 2803 _attribute_map = { 2804 'value': {'key': 'value', 'type': '[Share]'}, 2805 'next_link': {'key': 'nextLink', 'type': 'str'}, 2806 } 2807 2808 def __init__( 2809 self, 2810 **kwargs 2811 ): 2812 super(ShareList, self).__init__(**kwargs) 2813 self.value = None 2814 self.next_link = None 2815 2816 2817class Sku(msrest.serialization.Model): 2818 """The SKU type. 2819 2820 :param name: SKU name. Possible values include: "Gateway", "Edge", "TEA_1Node", 2821 "TEA_1Node_UPS", "TEA_1Node_Heater", "TEA_1Node_UPS_Heater", "TEA_4Node_Heater", 2822 "TEA_4Node_UPS_Heater", "TMA", "TDC", "TCA_Large", "TCA_Small", "GPU". 2823 :type name: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuName 2824 :param tier: The SKU tier. This is based on the SKU name. Possible values include: "Standard". 2825 :type tier: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuTier 2826 """ 2827 2828 _attribute_map = { 2829 'name': {'key': 'name', 'type': 'str'}, 2830 'tier': {'key': 'tier', 'type': 'str'}, 2831 } 2832 2833 def __init__( 2834 self, 2835 *, 2836 name: Optional[Union[str, "SkuName"]] = None, 2837 tier: Optional[Union[str, "SkuTier"]] = None, 2838 **kwargs 2839 ): 2840 super(Sku, self).__init__(**kwargs) 2841 self.name = name 2842 self.tier = tier 2843 2844 2845class SKUCapability(msrest.serialization.Model): 2846 """The capabilities of the SKU. 2847 2848 Variables are only populated by the server, and will be ignored when sending a request. 2849 2850 :ivar name: The capability name. 2851 :vartype name: str 2852 :ivar value: The capability value. 2853 :vartype value: str 2854 """ 2855 2856 _validation = { 2857 'name': {'readonly': True}, 2858 'value': {'readonly': True}, 2859 } 2860 2861 _attribute_map = { 2862 'name': {'key': 'name', 'type': 'str'}, 2863 'value': {'key': 'value', 'type': 'str'}, 2864 } 2865 2866 def __init__( 2867 self, 2868 **kwargs 2869 ): 2870 super(SKUCapability, self).__init__(**kwargs) 2871 self.name = None 2872 self.value = None 2873 2874 2875class SkuCost(msrest.serialization.Model): 2876 """The metadata for retrieving price info. 2877 2878 Variables are only populated by the server, and will be ignored when sending a request. 2879 2880 :ivar meter_id: Used for querying price from commerce. 2881 :vartype meter_id: str 2882 :ivar quantity: The cost quantity. 2883 :vartype quantity: long 2884 :ivar extended_unit: The extended unit. 2885 :vartype extended_unit: str 2886 """ 2887 2888 _validation = { 2889 'meter_id': {'readonly': True}, 2890 'quantity': {'readonly': True}, 2891 'extended_unit': {'readonly': True}, 2892 } 2893 2894 _attribute_map = { 2895 'meter_id': {'key': 'meterId', 'type': 'str'}, 2896 'quantity': {'key': 'quantity', 'type': 'long'}, 2897 'extended_unit': {'key': 'extendedUnit', 'type': 'str'}, 2898 } 2899 2900 def __init__( 2901 self, 2902 **kwargs 2903 ): 2904 super(SkuCost, self).__init__(**kwargs) 2905 self.meter_id = None 2906 self.quantity = None 2907 self.extended_unit = None 2908 2909 2910class SkuInformation(msrest.serialization.Model): 2911 """Sku information. 2912 2913 Variables are only populated by the server, and will be ignored when sending a request. 2914 2915 :ivar resource_type: The resource type. 2916 :vartype resource_type: str 2917 :ivar name: The sku name. 2918 :vartype name: str 2919 :ivar tier: The sku tier. 2920 :vartype tier: str 2921 :ivar kind: The sku kind. 2922 :vartype kind: str 2923 :ivar size: The sku size. 2924 :vartype size: str 2925 :ivar family: The sku family. 2926 :vartype family: str 2927 :ivar locations: The locations where Sku is available. 2928 :vartype locations: list[str] 2929 :ivar location_info: The locations where Sku is available with zones and sites info. 2930 :vartype location_info: 2931 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuLocationInfo] 2932 :ivar required_quota_ids: The required quotaIds for the sku to be available. 2933 :vartype required_quota_ids: list[str] 2934 :ivar required_features: The required features for the sku to be available. 2935 :vartype required_features: list[str] 2936 :ivar costs: The cost of the SKU. 2937 :vartype costs: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuCost] 2938 :ivar capabilities: The capabilities of the SKU. 2939 :vartype capabilities: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.SKUCapability] 2940 """ 2941 2942 _validation = { 2943 'resource_type': {'readonly': True}, 2944 'name': {'readonly': True}, 2945 'tier': {'readonly': True}, 2946 'kind': {'readonly': True}, 2947 'size': {'readonly': True}, 2948 'family': {'readonly': True}, 2949 'locations': {'readonly': True}, 2950 'location_info': {'readonly': True}, 2951 'required_quota_ids': {'readonly': True}, 2952 'required_features': {'readonly': True}, 2953 'costs': {'readonly': True}, 2954 'capabilities': {'readonly': True}, 2955 } 2956 2957 _attribute_map = { 2958 'resource_type': {'key': 'resourceType', 'type': 'str'}, 2959 'name': {'key': 'name', 'type': 'str'}, 2960 'tier': {'key': 'tier', 'type': 'str'}, 2961 'kind': {'key': 'kind', 'type': 'str'}, 2962 'size': {'key': 'size', 'type': 'str'}, 2963 'family': {'key': 'family', 'type': 'str'}, 2964 'locations': {'key': 'locations', 'type': '[str]'}, 2965 'location_info': {'key': 'locationInfo', 'type': '[SkuLocationInfo]'}, 2966 'required_quota_ids': {'key': 'requiredQuotaIds', 'type': '[str]'}, 2967 'required_features': {'key': 'requiredFeatures', 'type': '[str]'}, 2968 'costs': {'key': 'costs', 'type': '[SkuCost]'}, 2969 'capabilities': {'key': 'capabilities', 'type': '[SKUCapability]'}, 2970 } 2971 2972 def __init__( 2973 self, 2974 **kwargs 2975 ): 2976 super(SkuInformation, self).__init__(**kwargs) 2977 self.resource_type = None 2978 self.name = None 2979 self.tier = None 2980 self.kind = None 2981 self.size = None 2982 self.family = None 2983 self.locations = None 2984 self.location_info = None 2985 self.required_quota_ids = None 2986 self.required_features = None 2987 self.costs = None 2988 self.capabilities = None 2989 2990 2991class SkuInformationList(msrest.serialization.Model): 2992 """List of SKU Information objects. 2993 2994 Variables are only populated by the server, and will be ignored when sending a request. 2995 2996 :ivar value: List of ResourceType Sku. 2997 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.ResourceTypeSku] 2998 :ivar next_link: Links to the next set of results. 2999 :vartype next_link: str 3000 """ 3001 3002 _validation = { 3003 'value': {'readonly': True}, 3004 'next_link': {'readonly': True}, 3005 } 3006 3007 _attribute_map = { 3008 'value': {'key': 'value', 'type': '[ResourceTypeSku]'}, 3009 'next_link': {'key': 'nextLink', 'type': 'str'}, 3010 } 3011 3012 def __init__( 3013 self, 3014 **kwargs 3015 ): 3016 super(SkuInformationList, self).__init__(**kwargs) 3017 self.value = None 3018 self.next_link = None 3019 3020 3021class SkuLocationInfo(msrest.serialization.Model): 3022 """The location info. 3023 3024 Variables are only populated by the server, and will be ignored when sending a request. 3025 3026 :ivar location: The location. 3027 :vartype location: str 3028 :ivar zones: The zones. 3029 :vartype zones: list[str] 3030 :ivar sites: The sites. 3031 :vartype sites: list[str] 3032 """ 3033 3034 _validation = { 3035 'location': {'readonly': True}, 3036 'zones': {'readonly': True}, 3037 'sites': {'readonly': True}, 3038 } 3039 3040 _attribute_map = { 3041 'location': {'key': 'location', 'type': 'str'}, 3042 'zones': {'key': 'zones', 'type': '[str]'}, 3043 'sites': {'key': 'sites', 'type': '[str]'}, 3044 } 3045 3046 def __init__( 3047 self, 3048 **kwargs 3049 ): 3050 super(SkuLocationInfo, self).__init__(**kwargs) 3051 self.location = None 3052 self.zones = None 3053 self.sites = None 3054 3055 3056class SkuRestriction(msrest.serialization.Model): 3057 """The restrictions because of which SKU cannot be used. 3058 3059 Variables are only populated by the server, and will be ignored when sending a request. 3060 3061 :ivar type: The type of the restriction. 3062 :vartype type: str 3063 :ivar values: The locations where sku is restricted. 3064 :vartype values: list[str] 3065 :ivar reason_code: The SKU restriction reason. Possible values include: 3066 "NotAvailableForSubscription", "QuotaId". 3067 :vartype reason_code: str or 3068 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuRestrictionReasonCode 3069 :ivar restriction_info: Restriction of the SKU for the location/zone. 3070 :vartype restriction_info: 3071 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SkuRestrictionInfo 3072 """ 3073 3074 _validation = { 3075 'type': {'readonly': True}, 3076 'values': {'readonly': True}, 3077 'reason_code': {'readonly': True}, 3078 'restriction_info': {'readonly': True}, 3079 } 3080 3081 _attribute_map = { 3082 'type': {'key': 'type', 'type': 'str'}, 3083 'values': {'key': 'values', 'type': '[str]'}, 3084 'reason_code': {'key': 'reasonCode', 'type': 'str'}, 3085 'restriction_info': {'key': 'restrictionInfo', 'type': 'SkuRestrictionInfo'}, 3086 } 3087 3088 def __init__( 3089 self, 3090 **kwargs 3091 ): 3092 super(SkuRestriction, self).__init__(**kwargs) 3093 self.type = None 3094 self.values = None 3095 self.reason_code = None 3096 self.restriction_info = None 3097 3098 3099class SkuRestrictionInfo(msrest.serialization.Model): 3100 """The restriction info with locations and zones. 3101 3102 Variables are only populated by the server, and will be ignored when sending a request. 3103 3104 :ivar locations: The locations. 3105 :vartype locations: list[str] 3106 :ivar zones: The zones. 3107 :vartype zones: list[str] 3108 """ 3109 3110 _validation = { 3111 'locations': {'readonly': True}, 3112 'zones': {'readonly': True}, 3113 } 3114 3115 _attribute_map = { 3116 'locations': {'key': 'locations', 'type': '[str]'}, 3117 'zones': {'key': 'zones', 'type': '[str]'}, 3118 } 3119 3120 def __init__( 3121 self, 3122 **kwargs 3123 ): 3124 super(SkuRestrictionInfo, self).__init__(**kwargs) 3125 self.locations = None 3126 self.zones = None 3127 3128 3129class StorageAccount(ARMBaseModel): 3130 """Represents a Storage Account on the Data Box Edge/Gateway device. 3131 3132 Variables are only populated by the server, and will be ignored when sending a request. 3133 3134 :ivar id: The path ID that uniquely identifies the object. 3135 :vartype id: str 3136 :ivar name: The object name. 3137 :vartype name: str 3138 :ivar type: The hierarchical type of the object. 3139 :vartype type: str 3140 :param description: Description for the storage Account. 3141 :type description: str 3142 :param storage_account_status: Current status of the storage account. Possible values include: 3143 "OK", "Offline", "Unknown", "Updating", "NeedsAttention". 3144 :type storage_account_status: str or 3145 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.StorageAccountStatus 3146 :param data_policy: Data policy of the storage Account. Possible values include: "Cloud", 3147 "Local". 3148 :type data_policy: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DataPolicy 3149 :param storage_account_credential_id: Storage Account Credential Id. 3150 :type storage_account_credential_id: str 3151 :ivar blob_endpoint: BlobEndpoint of Storage Account. 3152 :vartype blob_endpoint: str 3153 :ivar container_count: The Container Count. Present only for Storage Accounts with DataPolicy 3154 set to Cloud. 3155 :vartype container_count: int 3156 """ 3157 3158 _validation = { 3159 'id': {'readonly': True}, 3160 'name': {'readonly': True}, 3161 'type': {'readonly': True}, 3162 'blob_endpoint': {'readonly': True}, 3163 'container_count': {'readonly': True}, 3164 } 3165 3166 _attribute_map = { 3167 'id': {'key': 'id', 'type': 'str'}, 3168 'name': {'key': 'name', 'type': 'str'}, 3169 'type': {'key': 'type', 'type': 'str'}, 3170 'description': {'key': 'properties.description', 'type': 'str'}, 3171 'storage_account_status': {'key': 'properties.storageAccountStatus', 'type': 'str'}, 3172 'data_policy': {'key': 'properties.dataPolicy', 'type': 'str'}, 3173 'storage_account_credential_id': {'key': 'properties.storageAccountCredentialId', 'type': 'str'}, 3174 'blob_endpoint': {'key': 'properties.blobEndpoint', 'type': 'str'}, 3175 'container_count': {'key': 'properties.containerCount', 'type': 'int'}, 3176 } 3177 3178 def __init__( 3179 self, 3180 *, 3181 description: Optional[str] = None, 3182 storage_account_status: Optional[Union[str, "StorageAccountStatus"]] = None, 3183 data_policy: Optional[Union[str, "DataPolicy"]] = None, 3184 storage_account_credential_id: Optional[str] = None, 3185 **kwargs 3186 ): 3187 super(StorageAccount, self).__init__(**kwargs) 3188 self.description = description 3189 self.storage_account_status = storage_account_status 3190 self.data_policy = data_policy 3191 self.storage_account_credential_id = storage_account_credential_id 3192 self.blob_endpoint = None 3193 self.container_count = None 3194 3195 3196class StorageAccountCredential(ARMBaseModel): 3197 """The storage account credential. 3198 3199 Variables are only populated by the server, and will be ignored when sending a request. 3200 3201 All required parameters must be populated in order to send to Azure. 3202 3203 :ivar id: The path ID that uniquely identifies the object. 3204 :vartype id: str 3205 :ivar name: The object name. 3206 :vartype name: str 3207 :ivar type: The hierarchical type of the object. 3208 :vartype type: str 3209 :param alias: Required. Alias for the storage account. 3210 :type alias: str 3211 :param user_name: Username for the storage account. 3212 :type user_name: str 3213 :param account_key: Encrypted storage key. 3214 :type account_key: ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AsymmetricEncryptedSecret 3215 :param connection_string: Connection string for the storage account. Use this string if 3216 username and account key are not specified. 3217 :type connection_string: str 3218 :param ssl_status: Required. Signifies whether SSL needs to be enabled or not. Possible values 3219 include: "Enabled", "Disabled". 3220 :type ssl_status: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.SSLStatus 3221 :param blob_domain_name: Blob end point for private clouds. 3222 :type blob_domain_name: str 3223 :param account_type: Required. Type of storage accessed on the storage account. Possible values 3224 include: "GeneralPurposeStorage", "BlobStorage". 3225 :type account_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AccountType 3226 :param storage_account_id: Id of the storage account. 3227 :type storage_account_id: str 3228 """ 3229 3230 _validation = { 3231 'id': {'readonly': True}, 3232 'name': {'readonly': True}, 3233 'type': {'readonly': True}, 3234 'alias': {'required': True}, 3235 'ssl_status': {'required': True}, 3236 'account_type': {'required': True}, 3237 } 3238 3239 _attribute_map = { 3240 'id': {'key': 'id', 'type': 'str'}, 3241 'name': {'key': 'name', 'type': 'str'}, 3242 'type': {'key': 'type', 'type': 'str'}, 3243 'alias': {'key': 'properties.alias', 'type': 'str'}, 3244 'user_name': {'key': 'properties.userName', 'type': 'str'}, 3245 'account_key': {'key': 'properties.accountKey', 'type': 'AsymmetricEncryptedSecret'}, 3246 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, 3247 'ssl_status': {'key': 'properties.sslStatus', 'type': 'str'}, 3248 'blob_domain_name': {'key': 'properties.blobDomainName', 'type': 'str'}, 3249 'account_type': {'key': 'properties.accountType', 'type': 'str'}, 3250 'storage_account_id': {'key': 'properties.storageAccountId', 'type': 'str'}, 3251 } 3252 3253 def __init__( 3254 self, 3255 *, 3256 alias: str, 3257 ssl_status: Union[str, "SSLStatus"], 3258 account_type: Union[str, "AccountType"], 3259 user_name: Optional[str] = None, 3260 account_key: Optional["AsymmetricEncryptedSecret"] = None, 3261 connection_string: Optional[str] = None, 3262 blob_domain_name: Optional[str] = None, 3263 storage_account_id: Optional[str] = None, 3264 **kwargs 3265 ): 3266 super(StorageAccountCredential, self).__init__(**kwargs) 3267 self.alias = alias 3268 self.user_name = user_name 3269 self.account_key = account_key 3270 self.connection_string = connection_string 3271 self.ssl_status = ssl_status 3272 self.blob_domain_name = blob_domain_name 3273 self.account_type = account_type 3274 self.storage_account_id = storage_account_id 3275 3276 3277class StorageAccountCredentialList(msrest.serialization.Model): 3278 """The collection of storage account credentials. 3279 3280 Variables are only populated by the server, and will be ignored when sending a request. 3281 3282 :ivar value: The value. 3283 :vartype value: 3284 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.StorageAccountCredential] 3285 :ivar next_link: Link to the next set of results. 3286 :vartype next_link: str 3287 """ 3288 3289 _validation = { 3290 'value': {'readonly': True}, 3291 'next_link': {'readonly': True}, 3292 } 3293 3294 _attribute_map = { 3295 'value': {'key': 'value', 'type': '[StorageAccountCredential]'}, 3296 'next_link': {'key': 'nextLink', 'type': 'str'}, 3297 } 3298 3299 def __init__( 3300 self, 3301 **kwargs 3302 ): 3303 super(StorageAccountCredentialList, self).__init__(**kwargs) 3304 self.value = None 3305 self.next_link = None 3306 3307 3308class StorageAccountList(msrest.serialization.Model): 3309 """Collection of all the Storage Accounts on the Data Box Edge/Gateway device. 3310 3311 Variables are only populated by the server, and will be ignored when sending a request. 3312 3313 :ivar value: The list of storageAccounts. 3314 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.StorageAccount] 3315 :ivar next_link: Link to the next set of results. 3316 :vartype next_link: str 3317 """ 3318 3319 _validation = { 3320 'value': {'readonly': True}, 3321 'next_link': {'readonly': True}, 3322 } 3323 3324 _attribute_map = { 3325 'value': {'key': 'value', 'type': '[StorageAccount]'}, 3326 'next_link': {'key': 'nextLink', 'type': 'str'}, 3327 } 3328 3329 def __init__( 3330 self, 3331 **kwargs 3332 ): 3333 super(StorageAccountList, self).__init__(**kwargs) 3334 self.value = None 3335 self.next_link = None 3336 3337 3338class SymmetricKey(msrest.serialization.Model): 3339 """Symmetric key for authentication. 3340 3341 :param connection_string: Connection string based on the symmetric key. 3342 :type connection_string: 3343 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AsymmetricEncryptedSecret 3344 """ 3345 3346 _attribute_map = { 3347 'connection_string': {'key': 'connectionString', 'type': 'AsymmetricEncryptedSecret'}, 3348 } 3349 3350 def __init__( 3351 self, 3352 *, 3353 connection_string: Optional["AsymmetricEncryptedSecret"] = None, 3354 **kwargs 3355 ): 3356 super(SymmetricKey, self).__init__(**kwargs) 3357 self.connection_string = connection_string 3358 3359 3360class TrackingInfo(msrest.serialization.Model): 3361 """Tracking courier information. 3362 3363 :param serial_number: Serial number of the device being tracked. 3364 :type serial_number: str 3365 :param carrier_name: Name of the carrier used in the delivery. 3366 :type carrier_name: str 3367 :param tracking_id: Tracking ID of the shipment. 3368 :type tracking_id: str 3369 :param tracking_url: Tracking URL of the shipment. 3370 :type tracking_url: str 3371 """ 3372 3373 _attribute_map = { 3374 'serial_number': {'key': 'serialNumber', 'type': 'str'}, 3375 'carrier_name': {'key': 'carrierName', 'type': 'str'}, 3376 'tracking_id': {'key': 'trackingId', 'type': 'str'}, 3377 'tracking_url': {'key': 'trackingUrl', 'type': 'str'}, 3378 } 3379 3380 def __init__( 3381 self, 3382 *, 3383 serial_number: Optional[str] = None, 3384 carrier_name: Optional[str] = None, 3385 tracking_id: Optional[str] = None, 3386 tracking_url: Optional[str] = None, 3387 **kwargs 3388 ): 3389 super(TrackingInfo, self).__init__(**kwargs) 3390 self.serial_number = serial_number 3391 self.carrier_name = carrier_name 3392 self.tracking_id = tracking_id 3393 self.tracking_url = tracking_url 3394 3395 3396class TriggerList(msrest.serialization.Model): 3397 """Collection of all trigger on the data box edge device. 3398 3399 Variables are only populated by the server, and will be ignored when sending a request. 3400 3401 :ivar value: The list of triggers. 3402 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.Trigger] 3403 :ivar next_link: Link to the next set of results. 3404 :vartype next_link: str 3405 """ 3406 3407 _validation = { 3408 'value': {'readonly': True}, 3409 'next_link': {'readonly': True}, 3410 } 3411 3412 _attribute_map = { 3413 'value': {'key': 'value', 'type': '[Trigger]'}, 3414 'next_link': {'key': 'nextLink', 'type': 'str'}, 3415 } 3416 3417 def __init__( 3418 self, 3419 **kwargs 3420 ): 3421 super(TriggerList, self).__init__(**kwargs) 3422 self.value = None 3423 self.next_link = None 3424 3425 3426class UpdateDownloadProgress(msrest.serialization.Model): 3427 """Details about the download progress of update. 3428 3429 Variables are only populated by the server, and will be ignored when sending a request. 3430 3431 :ivar download_phase: The download phase. Possible values include: "Unknown", "Initializing", 3432 "Downloading", "Verifying". 3433 :vartype download_phase: str or 3434 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.DownloadPhase 3435 :ivar percent_complete: Percentage of completion. 3436 :vartype percent_complete: int 3437 :ivar total_bytes_to_download: Total bytes to download. 3438 :vartype total_bytes_to_download: float 3439 :ivar total_bytes_downloaded: Total bytes downloaded. 3440 :vartype total_bytes_downloaded: float 3441 :ivar number_of_updates_to_download: Number of updates to download. 3442 :vartype number_of_updates_to_download: int 3443 :ivar number_of_updates_downloaded: Number of updates downloaded. 3444 :vartype number_of_updates_downloaded: int 3445 """ 3446 3447 _validation = { 3448 'download_phase': {'readonly': True}, 3449 'percent_complete': {'readonly': True}, 3450 'total_bytes_to_download': {'readonly': True}, 3451 'total_bytes_downloaded': {'readonly': True}, 3452 'number_of_updates_to_download': {'readonly': True}, 3453 'number_of_updates_downloaded': {'readonly': True}, 3454 } 3455 3456 _attribute_map = { 3457 'download_phase': {'key': 'downloadPhase', 'type': 'str'}, 3458 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 3459 'total_bytes_to_download': {'key': 'totalBytesToDownload', 'type': 'float'}, 3460 'total_bytes_downloaded': {'key': 'totalBytesDownloaded', 'type': 'float'}, 3461 'number_of_updates_to_download': {'key': 'numberOfUpdatesToDownload', 'type': 'int'}, 3462 'number_of_updates_downloaded': {'key': 'numberOfUpdatesDownloaded', 'type': 'int'}, 3463 } 3464 3465 def __init__( 3466 self, 3467 **kwargs 3468 ): 3469 super(UpdateDownloadProgress, self).__init__(**kwargs) 3470 self.download_phase = None 3471 self.percent_complete = None 3472 self.total_bytes_to_download = None 3473 self.total_bytes_downloaded = None 3474 self.number_of_updates_to_download = None 3475 self.number_of_updates_downloaded = None 3476 3477 3478class UpdateInstallProgress(msrest.serialization.Model): 3479 """Progress details during installation of updates. 3480 3481 Variables are only populated by the server, and will be ignored when sending a request. 3482 3483 :ivar percent_complete: Percentage completed. 3484 :vartype percent_complete: int 3485 :ivar number_of_updates_to_install: Number of updates to install. 3486 :vartype number_of_updates_to_install: int 3487 :ivar number_of_updates_installed: Number of updates installed. 3488 :vartype number_of_updates_installed: int 3489 """ 3490 3491 _validation = { 3492 'percent_complete': {'readonly': True}, 3493 'number_of_updates_to_install': {'readonly': True}, 3494 'number_of_updates_installed': {'readonly': True}, 3495 } 3496 3497 _attribute_map = { 3498 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 3499 'number_of_updates_to_install': {'key': 'numberOfUpdatesToInstall', 'type': 'int'}, 3500 'number_of_updates_installed': {'key': 'numberOfUpdatesInstalled', 'type': 'int'}, 3501 } 3502 3503 def __init__( 3504 self, 3505 **kwargs 3506 ): 3507 super(UpdateInstallProgress, self).__init__(**kwargs) 3508 self.percent_complete = None 3509 self.number_of_updates_to_install = None 3510 self.number_of_updates_installed = None 3511 3512 3513class UpdateSummary(ARMBaseModel): 3514 """Details about ongoing updates and availability of updates on the device. 3515 3516 Variables are only populated by the server, and will be ignored when sending a request. 3517 3518 :ivar id: The path ID that uniquely identifies the object. 3519 :vartype id: str 3520 :ivar name: The object name. 3521 :vartype name: str 3522 :ivar type: The hierarchical type of the object. 3523 :vartype type: str 3524 :param device_version_number: The current version of the device in format: 1.2.17312.13.",. 3525 :type device_version_number: str 3526 :param friendly_device_version_name: The current version of the device in text format. 3527 :type friendly_device_version_name: str 3528 :param device_last_scanned_date_time: The last time when a scan was done on the device. 3529 :type device_last_scanned_date_time: ~datetime.datetime 3530 :param last_completed_scan_job_date_time: The time when the last scan job was completed 3531 (success/cancelled/failed) on the appliance. 3532 :type last_completed_scan_job_date_time: ~datetime.datetime 3533 :ivar last_completed_download_job_date_time: The time when the last Download job was completed 3534 (success/cancelled/failed) on the appliance. 3535 :vartype last_completed_download_job_date_time: ~datetime.datetime 3536 :ivar last_completed_install_job_date_time: The time when the last Install job was completed 3537 (success/cancelled/failed) on the appliance. 3538 :vartype last_completed_install_job_date_time: ~datetime.datetime 3539 :ivar total_number_of_updates_available: The number of updates available for the current device 3540 version as per the last device scan. 3541 :vartype total_number_of_updates_available: int 3542 :ivar total_number_of_updates_pending_download: The total number of items pending download. 3543 :vartype total_number_of_updates_pending_download: int 3544 :ivar total_number_of_updates_pending_install: The total number of items pending install. 3545 :vartype total_number_of_updates_pending_install: int 3546 :ivar reboot_behavior: Indicates if updates are available and at least one of the updates needs 3547 a reboot. Possible values include: "NeverReboots", "RequiresReboot", "RequestReboot". 3548 :vartype reboot_behavior: str or 3549 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.InstallRebootBehavior 3550 :ivar ongoing_update_operation: The current update operation. Possible values include: "None", 3551 "Scan", "Download", "Install". 3552 :vartype ongoing_update_operation: str or 3553 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.UpdateOperation 3554 :ivar in_progress_download_job_id: The job ID of the download job in progress. 3555 :vartype in_progress_download_job_id: str 3556 :ivar in_progress_install_job_id: The job ID of the install job in progress. 3557 :vartype in_progress_install_job_id: str 3558 :ivar in_progress_download_job_started_date_time: The time when the currently running download 3559 (if any) started. 3560 :vartype in_progress_download_job_started_date_time: ~datetime.datetime 3561 :ivar in_progress_install_job_started_date_time: The time when the currently running install 3562 (if any) started. 3563 :vartype in_progress_install_job_started_date_time: ~datetime.datetime 3564 :ivar update_titles: The list of updates available for install. 3565 :vartype update_titles: list[str] 3566 :ivar total_update_size_in_bytes: The total size of updates available for download in bytes. 3567 :vartype total_update_size_in_bytes: float 3568 """ 3569 3570 _validation = { 3571 'id': {'readonly': True}, 3572 'name': {'readonly': True}, 3573 'type': {'readonly': True}, 3574 'last_completed_download_job_date_time': {'readonly': True}, 3575 'last_completed_install_job_date_time': {'readonly': True}, 3576 'total_number_of_updates_available': {'readonly': True}, 3577 'total_number_of_updates_pending_download': {'readonly': True}, 3578 'total_number_of_updates_pending_install': {'readonly': True}, 3579 'reboot_behavior': {'readonly': True}, 3580 'ongoing_update_operation': {'readonly': True}, 3581 'in_progress_download_job_id': {'readonly': True}, 3582 'in_progress_install_job_id': {'readonly': True}, 3583 'in_progress_download_job_started_date_time': {'readonly': True}, 3584 'in_progress_install_job_started_date_time': {'readonly': True}, 3585 'update_titles': {'readonly': True}, 3586 'total_update_size_in_bytes': {'readonly': True}, 3587 } 3588 3589 _attribute_map = { 3590 'id': {'key': 'id', 'type': 'str'}, 3591 'name': {'key': 'name', 'type': 'str'}, 3592 'type': {'key': 'type', 'type': 'str'}, 3593 'device_version_number': {'key': 'properties.deviceVersionNumber', 'type': 'str'}, 3594 'friendly_device_version_name': {'key': 'properties.friendlyDeviceVersionName', 'type': 'str'}, 3595 'device_last_scanned_date_time': {'key': 'properties.deviceLastScannedDateTime', 'type': 'iso-8601'}, 3596 'last_completed_scan_job_date_time': {'key': 'properties.lastCompletedScanJobDateTime', 'type': 'iso-8601'}, 3597 'last_completed_download_job_date_time': {'key': 'properties.lastCompletedDownloadJobDateTime', 'type': 'iso-8601'}, 3598 'last_completed_install_job_date_time': {'key': 'properties.lastCompletedInstallJobDateTime', 'type': 'iso-8601'}, 3599 'total_number_of_updates_available': {'key': 'properties.totalNumberOfUpdatesAvailable', 'type': 'int'}, 3600 'total_number_of_updates_pending_download': {'key': 'properties.totalNumberOfUpdatesPendingDownload', 'type': 'int'}, 3601 'total_number_of_updates_pending_install': {'key': 'properties.totalNumberOfUpdatesPendingInstall', 'type': 'int'}, 3602 'reboot_behavior': {'key': 'properties.rebootBehavior', 'type': 'str'}, 3603 'ongoing_update_operation': {'key': 'properties.ongoingUpdateOperation', 'type': 'str'}, 3604 'in_progress_download_job_id': {'key': 'properties.inProgressDownloadJobId', 'type': 'str'}, 3605 'in_progress_install_job_id': {'key': 'properties.inProgressInstallJobId', 'type': 'str'}, 3606 'in_progress_download_job_started_date_time': {'key': 'properties.inProgressDownloadJobStartedDateTime', 'type': 'iso-8601'}, 3607 'in_progress_install_job_started_date_time': {'key': 'properties.inProgressInstallJobStartedDateTime', 'type': 'iso-8601'}, 3608 'update_titles': {'key': 'properties.updateTitles', 'type': '[str]'}, 3609 'total_update_size_in_bytes': {'key': 'properties.totalUpdateSizeInBytes', 'type': 'float'}, 3610 } 3611 3612 def __init__( 3613 self, 3614 *, 3615 device_version_number: Optional[str] = None, 3616 friendly_device_version_name: Optional[str] = None, 3617 device_last_scanned_date_time: Optional[datetime.datetime] = None, 3618 last_completed_scan_job_date_time: Optional[datetime.datetime] = None, 3619 **kwargs 3620 ): 3621 super(UpdateSummary, self).__init__(**kwargs) 3622 self.device_version_number = device_version_number 3623 self.friendly_device_version_name = friendly_device_version_name 3624 self.device_last_scanned_date_time = device_last_scanned_date_time 3625 self.last_completed_scan_job_date_time = last_completed_scan_job_date_time 3626 self.last_completed_download_job_date_time = None 3627 self.last_completed_install_job_date_time = None 3628 self.total_number_of_updates_available = None 3629 self.total_number_of_updates_pending_download = None 3630 self.total_number_of_updates_pending_install = None 3631 self.reboot_behavior = None 3632 self.ongoing_update_operation = None 3633 self.in_progress_download_job_id = None 3634 self.in_progress_install_job_id = None 3635 self.in_progress_download_job_started_date_time = None 3636 self.in_progress_install_job_started_date_time = None 3637 self.update_titles = None 3638 self.total_update_size_in_bytes = None 3639 3640 3641class UploadCertificateRequest(msrest.serialization.Model): 3642 """The upload certificate request. 3643 3644 All required parameters must be populated in order to send to Azure. 3645 3646 :param authentication_type: The authentication type. Possible values include: "Invalid", 3647 "AzureActiveDirectory". 3648 :type authentication_type: str or 3649 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AuthenticationType 3650 :param certificate: Required. The base64 encoded certificate raw data. 3651 :type certificate: str 3652 """ 3653 3654 _validation = { 3655 'certificate': {'required': True}, 3656 } 3657 3658 _attribute_map = { 3659 'authentication_type': {'key': 'properties.authenticationType', 'type': 'str'}, 3660 'certificate': {'key': 'properties.certificate', 'type': 'str'}, 3661 } 3662 3663 def __init__( 3664 self, 3665 *, 3666 certificate: str, 3667 authentication_type: Optional[Union[str, "AuthenticationType"]] = None, 3668 **kwargs 3669 ): 3670 super(UploadCertificateRequest, self).__init__(**kwargs) 3671 self.authentication_type = authentication_type 3672 self.certificate = certificate 3673 3674 3675class UploadCertificateResponse(msrest.serialization.Model): 3676 """The upload registration certificate response. 3677 3678 Variables are only populated by the server, and will be ignored when sending a request. 3679 3680 :param auth_type: Specifies authentication type. Possible values include: "Invalid", 3681 "AzureActiveDirectory". 3682 :type auth_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AuthenticationType 3683 :ivar resource_id: The resource ID of the Data Box Edge/Gateway device. 3684 :vartype resource_id: str 3685 :ivar aad_authority: Azure Active Directory tenant authority. 3686 :vartype aad_authority: str 3687 :ivar aad_tenant_id: Azure Active Directory tenant ID. 3688 :vartype aad_tenant_id: str 3689 :ivar service_principal_client_id: Azure Active Directory service principal client ID. 3690 :vartype service_principal_client_id: str 3691 :ivar service_principal_object_id: Azure Active Directory service principal object ID. 3692 :vartype service_principal_object_id: str 3693 :ivar azure_management_endpoint_audience: The azure management endpoint audience. 3694 :vartype azure_management_endpoint_audience: str 3695 :ivar aad_audience: Identifier of the target resource that is the recipient of the requested 3696 token. 3697 :vartype aad_audience: str 3698 """ 3699 3700 _validation = { 3701 'resource_id': {'readonly': True}, 3702 'aad_authority': {'readonly': True}, 3703 'aad_tenant_id': {'readonly': True}, 3704 'service_principal_client_id': {'readonly': True}, 3705 'service_principal_object_id': {'readonly': True}, 3706 'azure_management_endpoint_audience': {'readonly': True}, 3707 'aad_audience': {'readonly': True}, 3708 } 3709 3710 _attribute_map = { 3711 'auth_type': {'key': 'authType', 'type': 'str'}, 3712 'resource_id': {'key': 'resourceId', 'type': 'str'}, 3713 'aad_authority': {'key': 'aadAuthority', 'type': 'str'}, 3714 'aad_tenant_id': {'key': 'aadTenantId', 'type': 'str'}, 3715 'service_principal_client_id': {'key': 'servicePrincipalClientId', 'type': 'str'}, 3716 'service_principal_object_id': {'key': 'servicePrincipalObjectId', 'type': 'str'}, 3717 'azure_management_endpoint_audience': {'key': 'azureManagementEndpointAudience', 'type': 'str'}, 3718 'aad_audience': {'key': 'aadAudience', 'type': 'str'}, 3719 } 3720 3721 def __init__( 3722 self, 3723 *, 3724 auth_type: Optional[Union[str, "AuthenticationType"]] = None, 3725 **kwargs 3726 ): 3727 super(UploadCertificateResponse, self).__init__(**kwargs) 3728 self.auth_type = auth_type 3729 self.resource_id = None 3730 self.aad_authority = None 3731 self.aad_tenant_id = None 3732 self.service_principal_client_id = None 3733 self.service_principal_object_id = None 3734 self.azure_management_endpoint_audience = None 3735 self.aad_audience = None 3736 3737 3738class User(ARMBaseModel): 3739 """Represents a user who has access to one or more shares on the Data Box Edge/Gateway device. 3740 3741 Variables are only populated by the server, and will be ignored when sending a request. 3742 3743 All required parameters must be populated in order to send to Azure. 3744 3745 :ivar id: The path ID that uniquely identifies the object. 3746 :vartype id: str 3747 :ivar name: The object name. 3748 :vartype name: str 3749 :ivar type: The hierarchical type of the object. 3750 :vartype type: str 3751 :param encrypted_password: The password details. 3752 :type encrypted_password: 3753 ~azure.mgmt.databoxedge.v2020_05_01_preview.models.AsymmetricEncryptedSecret 3754 :ivar share_access_rights: List of shares that the user has rights on. This field should not be 3755 specified during user creation. 3756 :vartype share_access_rights: 3757 list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.ShareAccessRight] 3758 :param user_type: Required. Type of the user. Possible values include: "Share", 3759 "LocalManagement", "ARM". 3760 :type user_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.UserType 3761 """ 3762 3763 _validation = { 3764 'id': {'readonly': True}, 3765 'name': {'readonly': True}, 3766 'type': {'readonly': True}, 3767 'share_access_rights': {'readonly': True}, 3768 'user_type': {'required': True}, 3769 } 3770 3771 _attribute_map = { 3772 'id': {'key': 'id', 'type': 'str'}, 3773 'name': {'key': 'name', 'type': 'str'}, 3774 'type': {'key': 'type', 'type': 'str'}, 3775 'encrypted_password': {'key': 'properties.encryptedPassword', 'type': 'AsymmetricEncryptedSecret'}, 3776 'share_access_rights': {'key': 'properties.shareAccessRights', 'type': '[ShareAccessRight]'}, 3777 'user_type': {'key': 'properties.userType', 'type': 'str'}, 3778 } 3779 3780 def __init__( 3781 self, 3782 *, 3783 user_type: Union[str, "UserType"], 3784 encrypted_password: Optional["AsymmetricEncryptedSecret"] = None, 3785 **kwargs 3786 ): 3787 super(User, self).__init__(**kwargs) 3788 self.encrypted_password = encrypted_password 3789 self.share_access_rights = None 3790 self.user_type = user_type 3791 3792 3793class UserAccessRight(msrest.serialization.Model): 3794 """The mapping between a particular user and the access type on the SMB share. 3795 3796 All required parameters must be populated in order to send to Azure. 3797 3798 :param user_id: Required. User ID (already existing in the device). 3799 :type user_id: str 3800 :param access_type: Required. Type of access to be allowed for the user. Possible values 3801 include: "Change", "Read", "Custom". 3802 :type access_type: str or ~azure.mgmt.databoxedge.v2020_05_01_preview.models.ShareAccessType 3803 """ 3804 3805 _validation = { 3806 'user_id': {'required': True}, 3807 'access_type': {'required': True}, 3808 } 3809 3810 _attribute_map = { 3811 'user_id': {'key': 'userId', 'type': 'str'}, 3812 'access_type': {'key': 'accessType', 'type': 'str'}, 3813 } 3814 3815 def __init__( 3816 self, 3817 *, 3818 user_id: str, 3819 access_type: Union[str, "ShareAccessType"], 3820 **kwargs 3821 ): 3822 super(UserAccessRight, self).__init__(**kwargs) 3823 self.user_id = user_id 3824 self.access_type = access_type 3825 3826 3827class UserList(msrest.serialization.Model): 3828 """Collection of users. 3829 3830 Variables are only populated by the server, and will be ignored when sending a request. 3831 3832 :ivar value: The list of users. 3833 :vartype value: list[~azure.mgmt.databoxedge.v2020_05_01_preview.models.User] 3834 :ivar next_link: Link to the next set of results. 3835 :vartype next_link: str 3836 """ 3837 3838 _validation = { 3839 'value': {'readonly': True}, 3840 'next_link': {'readonly': True}, 3841 } 3842 3843 _attribute_map = { 3844 'value': {'key': 'value', 'type': '[User]'}, 3845 'next_link': {'key': 'nextLink', 'type': 'str'}, 3846 } 3847 3848 def __init__( 3849 self, 3850 **kwargs 3851 ): 3852 super(UserList, self).__init__(**kwargs) 3853 self.value = None 3854 self.next_link = None 3855