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