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_03_01.models.AlertSeverity 135 :ivar error_details: Error details of the alert. 136 :vartype error_details: ~azure.mgmt.databoxedge.v2019_03_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_03_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_03_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_03_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_03_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_03_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_03_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_03_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_03_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 DataBoxEdgeDevice(ARMBaseModel): 552 """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 :param location: Required. The location of the device. This is a supported and registered Azure 565 geographical region (for example, West US, East US, or Southeast Asia). The geographical region 566 of a device cannot be changed once it is created, but if an identical geographical region is 567 specified on update, the request will succeed. 568 :type location: str 569 :param tags: A set of tags. The list of tags that describe the device. These tags can be used 570 to view and group this device (across resource groups). 571 :type tags: dict[str, str] 572 :param sku: The SKU type. 573 :type sku: ~azure.mgmt.databoxedge.v2019_03_01.models.Sku 574 :param etag: The etag for the devices. 575 :type etag: str 576 :param data_box_edge_device_status: The status of the Data Box Edge/Gateway device. Possible 577 values include: "ReadyToSetup", "Online", "Offline", "NeedsAttention", "Disconnected", 578 "PartiallyDisconnected". 579 :type data_box_edge_device_status: str or 580 ~azure.mgmt.databoxedge.v2019_03_01.models.DataBoxEdgeDeviceStatus 581 :ivar serial_number: The Serial Number of Data Box Edge/Gateway device. 582 :vartype serial_number: str 583 :param description: The Description of the Data Box Edge/Gateway device. 584 :type description: str 585 :param model_description: The description of the Data Box Edge/Gateway device model. 586 :type model_description: str 587 :ivar device_type: The type of the Data Box Edge/Gateway device. Possible values include: 588 "DataBoxEdgeDevice". 589 :vartype device_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DeviceType 590 :param friendly_name: The Data Box Edge/Gateway device name. 591 :type friendly_name: str 592 :ivar culture: The Data Box Edge/Gateway device culture. 593 :vartype culture: str 594 :ivar device_model: The Data Box Edge/Gateway device model. 595 :vartype device_model: str 596 :ivar device_software_version: The Data Box Edge/Gateway device software version. 597 :vartype device_software_version: str 598 :ivar device_local_capacity: The Data Box Edge/Gateway device local capacity in MB. 599 :vartype device_local_capacity: long 600 :ivar time_zone: The Data Box Edge/Gateway device timezone. 601 :vartype time_zone: str 602 :ivar device_hcs_version: The device software version number of the device (eg: 1.2.18105.6). 603 :vartype device_hcs_version: str 604 :ivar configured_role_types: Type of compute roles configured. 605 :vartype configured_role_types: list[str or 606 ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes] 607 """ 608 609 _validation = { 610 'id': {'readonly': True}, 611 'name': {'readonly': True}, 612 'type': {'readonly': True}, 613 'location': {'required': True}, 614 'serial_number': {'readonly': True}, 615 'device_type': {'readonly': True}, 616 'culture': {'readonly': True}, 617 'device_model': {'readonly': True}, 618 'device_software_version': {'readonly': True}, 619 'device_local_capacity': {'readonly': True}, 620 'time_zone': {'readonly': True}, 621 'device_hcs_version': {'readonly': True}, 622 'configured_role_types': {'readonly': True}, 623 } 624 625 _attribute_map = { 626 'id': {'key': 'id', 'type': 'str'}, 627 'name': {'key': 'name', 'type': 'str'}, 628 'type': {'key': 'type', 'type': 'str'}, 629 'location': {'key': 'location', 'type': 'str'}, 630 'tags': {'key': 'tags', 'type': '{str}'}, 631 'sku': {'key': 'sku', 'type': 'Sku'}, 632 'etag': {'key': 'etag', 'type': 'str'}, 633 'data_box_edge_device_status': {'key': 'properties.dataBoxEdgeDeviceStatus', 'type': 'str'}, 634 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 635 'description': {'key': 'properties.description', 'type': 'str'}, 636 'model_description': {'key': 'properties.modelDescription', 'type': 'str'}, 637 'device_type': {'key': 'properties.deviceType', 'type': 'str'}, 638 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, 639 'culture': {'key': 'properties.culture', 'type': 'str'}, 640 'device_model': {'key': 'properties.deviceModel', 'type': 'str'}, 641 'device_software_version': {'key': 'properties.deviceSoftwareVersion', 'type': 'str'}, 642 'device_local_capacity': {'key': 'properties.deviceLocalCapacity', 'type': 'long'}, 643 'time_zone': {'key': 'properties.timeZone', 'type': 'str'}, 644 'device_hcs_version': {'key': 'properties.deviceHcsVersion', 'type': 'str'}, 645 'configured_role_types': {'key': 'properties.configuredRoleTypes', 'type': '[str]'}, 646 } 647 648 def __init__( 649 self, 650 *, 651 location: str, 652 tags: Optional[Dict[str, str]] = None, 653 sku: Optional["Sku"] = None, 654 etag: Optional[str] = None, 655 data_box_edge_device_status: Optional[Union[str, "DataBoxEdgeDeviceStatus"]] = None, 656 description: Optional[str] = None, 657 model_description: Optional[str] = None, 658 friendly_name: Optional[str] = None, 659 **kwargs 660 ): 661 super(DataBoxEdgeDevice, self).__init__(**kwargs) 662 self.location = location 663 self.tags = tags 664 self.sku = sku 665 self.etag = etag 666 self.data_box_edge_device_status = data_box_edge_device_status 667 self.serial_number = None 668 self.description = description 669 self.model_description = model_description 670 self.device_type = None 671 self.friendly_name = friendly_name 672 self.culture = None 673 self.device_model = None 674 self.device_software_version = None 675 self.device_local_capacity = None 676 self.time_zone = None 677 self.device_hcs_version = None 678 self.configured_role_types = None 679 680 681class DataBoxEdgeDeviceExtendedInfo(ARMBaseModel): 682 """The extended Info of the Data Box Edge/Gateway device. 683 684 Variables are only populated by the server, and will be ignored when sending a request. 685 686 :ivar id: The path ID that uniquely identifies the object. 687 :vartype id: str 688 :ivar name: The object name. 689 :vartype name: str 690 :ivar type: The hierarchical type of the object. 691 :vartype type: str 692 :param encryption_key_thumbprint: The digital signature of encrypted certificate. 693 :type encryption_key_thumbprint: str 694 :param encryption_key: The public part of the encryption certificate. Client uses this to 695 encrypt any secret. 696 :type encryption_key: str 697 :ivar resource_key: The Resource ID of the Resource. 698 :vartype resource_key: str 699 """ 700 701 _validation = { 702 'id': {'readonly': True}, 703 'name': {'readonly': True}, 704 'type': {'readonly': True}, 705 'resource_key': {'readonly': True}, 706 } 707 708 _attribute_map = { 709 'id': {'key': 'id', 'type': 'str'}, 710 'name': {'key': 'name', 'type': 'str'}, 711 'type': {'key': 'type', 'type': 'str'}, 712 'encryption_key_thumbprint': {'key': 'properties.encryptionKeyThumbprint', 'type': 'str'}, 713 'encryption_key': {'key': 'properties.encryptionKey', 'type': 'str'}, 714 'resource_key': {'key': 'properties.resourceKey', 'type': 'str'}, 715 } 716 717 def __init__( 718 self, 719 *, 720 encryption_key_thumbprint: Optional[str] = None, 721 encryption_key: Optional[str] = None, 722 **kwargs 723 ): 724 super(DataBoxEdgeDeviceExtendedInfo, self).__init__(**kwargs) 725 self.encryption_key_thumbprint = encryption_key_thumbprint 726 self.encryption_key = encryption_key 727 self.resource_key = None 728 729 730class DataBoxEdgeDeviceList(msrest.serialization.Model): 731 """The collection of Data Box Edge/Gateway devices. 732 733 Variables are only populated by the server, and will be ignored when sending a request. 734 735 :ivar value: The list of Data Box Edge/Gateway devices. 736 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.DataBoxEdgeDevice] 737 :ivar next_link: Link to the next set of results. 738 :vartype next_link: str 739 """ 740 741 _validation = { 742 'value': {'readonly': True}, 743 'next_link': {'readonly': True}, 744 } 745 746 _attribute_map = { 747 'value': {'key': 'value', 'type': '[DataBoxEdgeDevice]'}, 748 'next_link': {'key': 'nextLink', 'type': 'str'}, 749 } 750 751 def __init__( 752 self, 753 **kwargs 754 ): 755 super(DataBoxEdgeDeviceList, self).__init__(**kwargs) 756 self.value = None 757 self.next_link = None 758 759 760class DataBoxEdgeDevicePatch(msrest.serialization.Model): 761 """The Data Box Edge/Gateway device patch. 762 763 :param tags: A set of tags. The tags attached to the Data Box Edge/Gateway resource. 764 :type tags: dict[str, str] 765 """ 766 767 _attribute_map = { 768 'tags': {'key': 'tags', 'type': '{str}'}, 769 } 770 771 def __init__( 772 self, 773 *, 774 tags: Optional[Dict[str, str]] = None, 775 **kwargs 776 ): 777 super(DataBoxEdgeDevicePatch, self).__init__(**kwargs) 778 self.tags = tags 779 780 781class Trigger(ARMBaseModel): 782 """Trigger details. 783 784 You probably want to use the sub-classes and not this class directly. Known 785 sub-classes are: FileEventTrigger, PeriodicTimerEventTrigger. 786 787 Variables are only populated by the server, and will be ignored when sending a request. 788 789 All required parameters must be populated in order to send to Azure. 790 791 :ivar id: The path ID that uniquely identifies the object. 792 :vartype id: str 793 :ivar name: The object name. 794 :vartype name: str 795 :ivar type: The hierarchical type of the object. 796 :vartype type: str 797 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 798 "FileEvent", "PeriodicTimerEvent". 799 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 800 """ 801 802 _validation = { 803 'id': {'readonly': True}, 804 'name': {'readonly': True}, 805 'type': {'readonly': True}, 806 'kind': {'required': True}, 807 } 808 809 _attribute_map = { 810 'id': {'key': 'id', 'type': 'str'}, 811 'name': {'key': 'name', 'type': 'str'}, 812 'type': {'key': 'type', 'type': 'str'}, 813 'kind': {'key': 'kind', 'type': 'str'}, 814 } 815 816 _subtype_map = { 817 'kind': {'FileEvent': 'FileEventTrigger', 'PeriodicTimerEvent': 'PeriodicTimerEventTrigger'} 818 } 819 820 def __init__( 821 self, 822 **kwargs 823 ): 824 super(Trigger, self).__init__(**kwargs) 825 self.kind = 'Trigger' # type: str 826 827 828class FileEventTrigger(Trigger): 829 """Trigger details. 830 831 Variables are only populated by the server, and will be ignored when sending a request. 832 833 All required parameters must be populated in order to send to Azure. 834 835 :ivar id: The path ID that uniquely identifies the object. 836 :vartype id: str 837 :ivar name: The object name. 838 :vartype name: str 839 :ivar type: The hierarchical type of the object. 840 :vartype type: str 841 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 842 "FileEvent", "PeriodicTimerEvent". 843 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 844 :param source_info: Required. File event source details. 845 :type source_info: ~azure.mgmt.databoxedge.v2019_03_01.models.FileSourceInfo 846 :param sink_info: Required. Role sink info. 847 :type sink_info: ~azure.mgmt.databoxedge.v2019_03_01.models.RoleSinkInfo 848 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 849 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 850 modules in the device, the tag can be the name or the image URL of the module. 851 :type custom_context_tag: str 852 """ 853 854 _validation = { 855 'id': {'readonly': True}, 856 'name': {'readonly': True}, 857 'type': {'readonly': True}, 858 'kind': {'required': True}, 859 'source_info': {'required': True}, 860 'sink_info': {'required': True}, 861 } 862 863 _attribute_map = { 864 'id': {'key': 'id', 'type': 'str'}, 865 'name': {'key': 'name', 'type': 'str'}, 866 'type': {'key': 'type', 'type': 'str'}, 867 'kind': {'key': 'kind', 'type': 'str'}, 868 'source_info': {'key': 'properties.sourceInfo', 'type': 'FileSourceInfo'}, 869 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 870 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 871 } 872 873 def __init__( 874 self, 875 *, 876 source_info: "FileSourceInfo", 877 sink_info: "RoleSinkInfo", 878 custom_context_tag: Optional[str] = None, 879 **kwargs 880 ): 881 super(FileEventTrigger, self).__init__(**kwargs) 882 self.kind = 'FileEvent' # type: str 883 self.source_info = source_info 884 self.sink_info = sink_info 885 self.custom_context_tag = custom_context_tag 886 887 888class FileSourceInfo(msrest.serialization.Model): 889 """File source details. 890 891 All required parameters must be populated in order to send to Azure. 892 893 :param share_id: Required. File share ID. 894 :type share_id: str 895 """ 896 897 _validation = { 898 'share_id': {'required': True}, 899 } 900 901 _attribute_map = { 902 'share_id': {'key': 'shareId', 'type': 'str'}, 903 } 904 905 def __init__( 906 self, 907 *, 908 share_id: str, 909 **kwargs 910 ): 911 super(FileSourceInfo, self).__init__(**kwargs) 912 self.share_id = share_id 913 914 915class IoTDeviceInfo(msrest.serialization.Model): 916 """Metadata of IoT device/IoT Edge device to be configured. 917 918 All required parameters must be populated in order to send to Azure. 919 920 :param device_id: Required. ID of the IoT device/edge device. 921 :type device_id: str 922 :param io_t_host_hub: Required. Host name for the IoT hub associated to the device. 923 :type io_t_host_hub: str 924 :param authentication: IoT device authentication info. 925 :type authentication: ~azure.mgmt.databoxedge.v2019_03_01.models.Authentication 926 """ 927 928 _validation = { 929 'device_id': {'required': True}, 930 'io_t_host_hub': {'required': True}, 931 } 932 933 _attribute_map = { 934 'device_id': {'key': 'deviceId', 'type': 'str'}, 935 'io_t_host_hub': {'key': 'ioTHostHub', 'type': 'str'}, 936 'authentication': {'key': 'authentication', 'type': 'Authentication'}, 937 } 938 939 def __init__( 940 self, 941 *, 942 device_id: str, 943 io_t_host_hub: str, 944 authentication: Optional["Authentication"] = None, 945 **kwargs 946 ): 947 super(IoTDeviceInfo, self).__init__(**kwargs) 948 self.device_id = device_id 949 self.io_t_host_hub = io_t_host_hub 950 self.authentication = authentication 951 952 953class Role(ARMBaseModel): 954 """Compute role. 955 956 You probably want to use the sub-classes and not this class directly. Known 957 sub-classes are: IoTRole. 958 959 Variables are only populated by the server, and will be ignored when sending a request. 960 961 All required parameters must be populated in order to send to Azure. 962 963 :ivar id: The path ID that uniquely identifies the object. 964 :vartype id: str 965 :ivar name: The object name. 966 :vartype name: str 967 :ivar type: The hierarchical type of the object. 968 :vartype type: str 969 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 970 "ASA", "Functions", "Cognitive". 971 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 972 """ 973 974 _validation = { 975 'id': {'readonly': True}, 976 'name': {'readonly': True}, 977 'type': {'readonly': True}, 978 'kind': {'required': True}, 979 } 980 981 _attribute_map = { 982 'id': {'key': 'id', 'type': 'str'}, 983 'name': {'key': 'name', 'type': 'str'}, 984 'type': {'key': 'type', 'type': 'str'}, 985 'kind': {'key': 'kind', 'type': 'str'}, 986 } 987 988 _subtype_map = { 989 'kind': {'IOT': 'IoTRole'} 990 } 991 992 def __init__( 993 self, 994 **kwargs 995 ): 996 super(Role, self).__init__(**kwargs) 997 self.kind = 'Role' # type: str 998 999 1000class IoTRole(Role): 1001 """Compute role. 1002 1003 Variables are only populated by the server, and will be ignored when sending a request. 1004 1005 All required parameters must be populated in order to send to Azure. 1006 1007 :ivar id: The path ID that uniquely identifies the object. 1008 :vartype id: str 1009 :ivar name: The object name. 1010 :vartype name: str 1011 :ivar type: The hierarchical type of the object. 1012 :vartype type: str 1013 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 1014 "ASA", "Functions", "Cognitive". 1015 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 1016 :param host_platform: Host OS supported by the IoT role. Possible values include: "Windows", 1017 "Linux". 1018 :type host_platform: str or ~azure.mgmt.databoxedge.v2019_03_01.models.PlatformType 1019 :param io_t_device_details: IoT device metadata to which data box edge device needs to be 1020 connected. 1021 :type io_t_device_details: ~azure.mgmt.databoxedge.v2019_03_01.models.IoTDeviceInfo 1022 :param io_t_edge_device_details: IoT edge device to which the IoT role needs to be configured. 1023 :type io_t_edge_device_details: ~azure.mgmt.databoxedge.v2019_03_01.models.IoTDeviceInfo 1024 :param share_mappings: Mount points of shares in role(s). 1025 :type share_mappings: list[~azure.mgmt.databoxedge.v2019_03_01.models.MountPointMap] 1026 :param role_status: Role status. Possible values include: "Enabled", "Disabled". 1027 :type role_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleStatus 1028 """ 1029 1030 _validation = { 1031 'id': {'readonly': True}, 1032 'name': {'readonly': True}, 1033 'type': {'readonly': True}, 1034 'kind': {'required': True}, 1035 } 1036 1037 _attribute_map = { 1038 'id': {'key': 'id', 'type': 'str'}, 1039 'name': {'key': 'name', 'type': 'str'}, 1040 'type': {'key': 'type', 'type': 'str'}, 1041 'kind': {'key': 'kind', 'type': 'str'}, 1042 'host_platform': {'key': 'properties.hostPlatform', 'type': 'str'}, 1043 'io_t_device_details': {'key': 'properties.ioTDeviceDetails', 'type': 'IoTDeviceInfo'}, 1044 'io_t_edge_device_details': {'key': 'properties.ioTEdgeDeviceDetails', 'type': 'IoTDeviceInfo'}, 1045 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 1046 'role_status': {'key': 'properties.roleStatus', 'type': 'str'}, 1047 } 1048 1049 def __init__( 1050 self, 1051 *, 1052 host_platform: Optional[Union[str, "PlatformType"]] = None, 1053 io_t_device_details: Optional["IoTDeviceInfo"] = None, 1054 io_t_edge_device_details: Optional["IoTDeviceInfo"] = None, 1055 share_mappings: Optional[List["MountPointMap"]] = None, 1056 role_status: Optional[Union[str, "RoleStatus"]] = None, 1057 **kwargs 1058 ): 1059 super(IoTRole, self).__init__(**kwargs) 1060 self.kind = 'IOT' # type: str 1061 self.host_platform = host_platform 1062 self.io_t_device_details = io_t_device_details 1063 self.io_t_edge_device_details = io_t_edge_device_details 1064 self.share_mappings = share_mappings 1065 self.role_status = role_status 1066 1067 1068class Ipv4Config(msrest.serialization.Model): 1069 """Details related to the IPv4 address configuration. 1070 1071 Variables are only populated by the server, and will be ignored when sending a request. 1072 1073 :ivar ip_address: The IPv4 address of the network adapter. 1074 :vartype ip_address: str 1075 :ivar subnet: The IPv4 subnet of the network adapter. 1076 :vartype subnet: str 1077 :ivar gateway: The IPv4 gateway of the network adapter. 1078 :vartype gateway: str 1079 """ 1080 1081 _validation = { 1082 'ip_address': {'readonly': True}, 1083 'subnet': {'readonly': True}, 1084 'gateway': {'readonly': True}, 1085 } 1086 1087 _attribute_map = { 1088 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1089 'subnet': {'key': 'subnet', 'type': 'str'}, 1090 'gateway': {'key': 'gateway', 'type': 'str'}, 1091 } 1092 1093 def __init__( 1094 self, 1095 **kwargs 1096 ): 1097 super(Ipv4Config, self).__init__(**kwargs) 1098 self.ip_address = None 1099 self.subnet = None 1100 self.gateway = None 1101 1102 1103class Ipv6Config(msrest.serialization.Model): 1104 """Details related to the IPv6 address configuration. 1105 1106 Variables are only populated by the server, and will be ignored when sending a request. 1107 1108 :ivar ip_address: The IPv6 address of the network adapter. 1109 :vartype ip_address: str 1110 :ivar prefix_length: The IPv6 prefix of the network adapter. 1111 :vartype prefix_length: int 1112 :ivar gateway: The IPv6 gateway of the network adapter. 1113 :vartype gateway: str 1114 """ 1115 1116 _validation = { 1117 'ip_address': {'readonly': True}, 1118 'prefix_length': {'readonly': True}, 1119 'gateway': {'readonly': True}, 1120 } 1121 1122 _attribute_map = { 1123 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1124 'prefix_length': {'key': 'prefixLength', 'type': 'int'}, 1125 'gateway': {'key': 'gateway', 'type': 'str'}, 1126 } 1127 1128 def __init__( 1129 self, 1130 **kwargs 1131 ): 1132 super(Ipv6Config, self).__init__(**kwargs) 1133 self.ip_address = None 1134 self.prefix_length = None 1135 self.gateway = None 1136 1137 1138class Job(msrest.serialization.Model): 1139 """A device job. 1140 1141 Variables are only populated by the server, and will be ignored when sending a request. 1142 1143 :ivar id: The path ID that uniquely identifies the object. 1144 :vartype id: str 1145 :ivar name: The name of the object. 1146 :vartype name: str 1147 :ivar type: The hierarchical type of the object. 1148 :vartype type: str 1149 :ivar status: The current status of the job. Possible values include: "Invalid", "Running", 1150 "Succeeded", "Failed", "Canceled", "Paused", "Scheduled". 1151 :vartype status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.JobStatus 1152 :ivar start_time: The UTC date and time at which the job started. 1153 :vartype start_time: ~datetime.datetime 1154 :ivar end_time: The UTC date and time at which the job completed. 1155 :vartype end_time: ~datetime.datetime 1156 :ivar percent_complete: The percentage of the job that is complete. 1157 :vartype percent_complete: int 1158 :ivar error: The error details. 1159 :vartype error: ~azure.mgmt.databoxedge.v2019_03_01.models.JobErrorDetails 1160 :ivar job_type: The type of the job. Possible values include: "Invalid", "ScanForUpdates", 1161 "DownloadUpdates", "InstallUpdates", "RefreshShare". 1162 :vartype job_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.JobType 1163 :ivar current_stage: Current stage of the update operation. Possible values include: "Unknown", 1164 "Initial", "ScanStarted", "ScanComplete", "ScanFailed", "DownloadStarted", "DownloadComplete", 1165 "DownloadFailed", "InstallStarted", "InstallComplete", "InstallFailed", "RebootInitiated", 1166 "Success", "Failure", "RescanStarted", "RescanComplete", "RescanFailed". 1167 :vartype current_stage: str or ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateOperationStage 1168 :ivar download_progress: The download progress. 1169 :vartype download_progress: ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateDownloadProgress 1170 :ivar install_progress: The install progress. 1171 :vartype install_progress: ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateInstallProgress 1172 :ivar total_refresh_errors: Total number of errors encountered during the refresh process. 1173 :vartype total_refresh_errors: int 1174 :ivar error_manifest_file: Local share/remote container relative path to the error manifest 1175 file of the refresh. 1176 :vartype error_manifest_file: str 1177 :ivar share_id: ARM ID of the share that was refreshed. 1178 :vartype share_id: str 1179 :param folder: If only subfolders need to be refreshed, then the subfolder path inside the 1180 share. (The path is empty if there are no subfolders.). 1181 :type folder: str 1182 """ 1183 1184 _validation = { 1185 'id': {'readonly': True}, 1186 'name': {'readonly': True}, 1187 'type': {'readonly': True}, 1188 'status': {'readonly': True}, 1189 'start_time': {'readonly': True}, 1190 'end_time': {'readonly': True}, 1191 'percent_complete': {'readonly': True}, 1192 'error': {'readonly': True}, 1193 'job_type': {'readonly': True}, 1194 'current_stage': {'readonly': True}, 1195 'download_progress': {'readonly': True}, 1196 'install_progress': {'readonly': True}, 1197 'total_refresh_errors': {'readonly': True}, 1198 'error_manifest_file': {'readonly': True}, 1199 'share_id': {'readonly': True}, 1200 } 1201 1202 _attribute_map = { 1203 'id': {'key': 'id', 'type': 'str'}, 1204 'name': {'key': 'name', 'type': 'str'}, 1205 'type': {'key': 'type', 'type': 'str'}, 1206 'status': {'key': 'status', 'type': 'str'}, 1207 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 1208 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 1209 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 1210 'error': {'key': 'error', 'type': 'JobErrorDetails'}, 1211 'job_type': {'key': 'properties.jobType', 'type': 'str'}, 1212 'current_stage': {'key': 'properties.currentStage', 'type': 'str'}, 1213 'download_progress': {'key': 'properties.downloadProgress', 'type': 'UpdateDownloadProgress'}, 1214 'install_progress': {'key': 'properties.installProgress', 'type': 'UpdateInstallProgress'}, 1215 'total_refresh_errors': {'key': 'properties.totalRefreshErrors', 'type': 'int'}, 1216 'error_manifest_file': {'key': 'properties.errorManifestFile', 'type': 'str'}, 1217 'share_id': {'key': 'properties.shareId', 'type': 'str'}, 1218 'folder': {'key': 'properties.folder', 'type': 'str'}, 1219 } 1220 1221 def __init__( 1222 self, 1223 *, 1224 folder: Optional[str] = None, 1225 **kwargs 1226 ): 1227 super(Job, self).__init__(**kwargs) 1228 self.id = None 1229 self.name = None 1230 self.type = None 1231 self.status = None 1232 self.start_time = None 1233 self.end_time = None 1234 self.percent_complete = None 1235 self.error = None 1236 self.job_type = None 1237 self.current_stage = None 1238 self.download_progress = None 1239 self.install_progress = None 1240 self.total_refresh_errors = None 1241 self.error_manifest_file = None 1242 self.share_id = None 1243 self.folder = folder 1244 1245 1246class JobErrorDetails(msrest.serialization.Model): 1247 """The job error information containing the list of job errors. 1248 1249 Variables are only populated by the server, and will be ignored when sending a request. 1250 1251 :ivar error_details: The error details. 1252 :vartype error_details: list[~azure.mgmt.databoxedge.v2019_03_01.models.JobErrorItem] 1253 :ivar code: The code intended for programmatic access. 1254 :vartype code: str 1255 :ivar message: The message that describes the error in detail. 1256 :vartype message: str 1257 """ 1258 1259 _validation = { 1260 'error_details': {'readonly': True}, 1261 'code': {'readonly': True}, 1262 'message': {'readonly': True}, 1263 } 1264 1265 _attribute_map = { 1266 'error_details': {'key': 'errorDetails', 'type': '[JobErrorItem]'}, 1267 'code': {'key': 'code', 'type': 'str'}, 1268 'message': {'key': 'message', 'type': 'str'}, 1269 } 1270 1271 def __init__( 1272 self, 1273 **kwargs 1274 ): 1275 super(JobErrorDetails, self).__init__(**kwargs) 1276 self.error_details = None 1277 self.code = None 1278 self.message = None 1279 1280 1281class JobErrorItem(msrest.serialization.Model): 1282 """The job error items. 1283 1284 Variables are only populated by the server, and will be ignored when sending a request. 1285 1286 :ivar recommendations: The recommended actions. 1287 :vartype recommendations: list[str] 1288 :ivar code: The code intended for programmatic access. 1289 :vartype code: str 1290 :ivar message: The message that describes the error in detail. 1291 :vartype message: str 1292 """ 1293 1294 _validation = { 1295 'recommendations': {'readonly': True}, 1296 'code': {'readonly': True}, 1297 'message': {'readonly': True}, 1298 } 1299 1300 _attribute_map = { 1301 'recommendations': {'key': 'recommendations', 'type': '[str]'}, 1302 'code': {'key': 'code', 'type': 'str'}, 1303 'message': {'key': 'message', 'type': 'str'}, 1304 } 1305 1306 def __init__( 1307 self, 1308 **kwargs 1309 ): 1310 super(JobErrorItem, self).__init__(**kwargs) 1311 self.recommendations = None 1312 self.code = None 1313 self.message = None 1314 1315 1316class MetricDimensionV1(msrest.serialization.Model): 1317 """Metric Dimension v1. 1318 1319 :param name: Name of the metrics dimension. 1320 :type name: str 1321 :param display_name: Display name of the metrics dimension. 1322 :type display_name: str 1323 :param to_be_exported_for_shoebox: To be exported to shoe box. 1324 :type to_be_exported_for_shoebox: bool 1325 """ 1326 1327 _attribute_map = { 1328 'name': {'key': 'name', 'type': 'str'}, 1329 'display_name': {'key': 'displayName', 'type': 'str'}, 1330 'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'}, 1331 } 1332 1333 def __init__( 1334 self, 1335 *, 1336 name: Optional[str] = None, 1337 display_name: Optional[str] = None, 1338 to_be_exported_for_shoebox: Optional[bool] = None, 1339 **kwargs 1340 ): 1341 super(MetricDimensionV1, self).__init__(**kwargs) 1342 self.name = name 1343 self.display_name = display_name 1344 self.to_be_exported_for_shoebox = to_be_exported_for_shoebox 1345 1346 1347class MetricSpecificationV1(msrest.serialization.Model): 1348 """Metric specification version 1. 1349 1350 :param name: Name of the metric. 1351 :type name: str 1352 :param display_name: Display name of the metric. 1353 :type display_name: str 1354 :param display_description: Description of the metric to be displayed. 1355 :type display_description: str 1356 :param unit: Metric units. Possible values include: "NotSpecified", "Percent", "Count", 1357 "Seconds", "Milliseconds", "Bytes", "BytesPerSecond", "CountPerSecond". 1358 :type unit: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricUnit 1359 :param aggregation_type: Metric aggregation type. Possible values include: "NotSpecified", 1360 "None", "Average", "Minimum", "Maximum", "Total", "Count". 1361 :type aggregation_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricAggregationType 1362 :param dimensions: Metric dimensions, other than default dimension which is resource. 1363 :type dimensions: list[~azure.mgmt.databoxedge.v2019_03_01.models.MetricDimensionV1] 1364 :param fill_gap_with_zero: Set true to fill the gaps with zero. 1365 :type fill_gap_with_zero: bool 1366 :param category: Metric category. Possible values include: "Capacity", "Transaction". 1367 :type category: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricCategory 1368 :param resource_id_dimension_name_override: Resource name override. 1369 :type resource_id_dimension_name_override: str 1370 :param supported_time_grain_types: Support granularity of metrics. 1371 :type supported_time_grain_types: list[str or 1372 ~azure.mgmt.databoxedge.v2019_03_01.models.TimeGrain] 1373 :param supported_aggregation_types: Support metric aggregation type. 1374 :type supported_aggregation_types: list[str or 1375 ~azure.mgmt.databoxedge.v2019_03_01.models.MetricAggregationType] 1376 """ 1377 1378 _attribute_map = { 1379 'name': {'key': 'name', 'type': 'str'}, 1380 'display_name': {'key': 'displayName', 'type': 'str'}, 1381 'display_description': {'key': 'displayDescription', 'type': 'str'}, 1382 'unit': {'key': 'unit', 'type': 'str'}, 1383 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, 1384 'dimensions': {'key': 'dimensions', 'type': '[MetricDimensionV1]'}, 1385 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, 1386 'category': {'key': 'category', 'type': 'str'}, 1387 'resource_id_dimension_name_override': {'key': 'resourceIdDimensionNameOverride', 'type': 'str'}, 1388 'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'}, 1389 'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'}, 1390 } 1391 1392 def __init__( 1393 self, 1394 *, 1395 name: Optional[str] = None, 1396 display_name: Optional[str] = None, 1397 display_description: Optional[str] = None, 1398 unit: Optional[Union[str, "MetricUnit"]] = None, 1399 aggregation_type: Optional[Union[str, "MetricAggregationType"]] = None, 1400 dimensions: Optional[List["MetricDimensionV1"]] = None, 1401 fill_gap_with_zero: Optional[bool] = None, 1402 category: Optional[Union[str, "MetricCategory"]] = None, 1403 resource_id_dimension_name_override: Optional[str] = None, 1404 supported_time_grain_types: Optional[List[Union[str, "TimeGrain"]]] = None, 1405 supported_aggregation_types: Optional[List[Union[str, "MetricAggregationType"]]] = None, 1406 **kwargs 1407 ): 1408 super(MetricSpecificationV1, self).__init__(**kwargs) 1409 self.name = name 1410 self.display_name = display_name 1411 self.display_description = display_description 1412 self.unit = unit 1413 self.aggregation_type = aggregation_type 1414 self.dimensions = dimensions 1415 self.fill_gap_with_zero = fill_gap_with_zero 1416 self.category = category 1417 self.resource_id_dimension_name_override = resource_id_dimension_name_override 1418 self.supported_time_grain_types = supported_time_grain_types 1419 self.supported_aggregation_types = supported_aggregation_types 1420 1421 1422class MountPointMap(msrest.serialization.Model): 1423 """The share mount point. 1424 1425 Variables are only populated by the server, and will be ignored when sending a request. 1426 1427 All required parameters must be populated in order to send to Azure. 1428 1429 :param share_id: Required. ID of the share mounted to the role VM. 1430 :type share_id: str 1431 :ivar role_id: ID of the role to which share is mounted. 1432 :vartype role_id: str 1433 :ivar mount_point: Mount point for the share. 1434 :vartype mount_point: str 1435 :ivar role_type: Role type. Possible values include: "IOT", "ASA", "Functions", "Cognitive". 1436 :vartype role_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 1437 """ 1438 1439 _validation = { 1440 'share_id': {'required': True}, 1441 'role_id': {'readonly': True}, 1442 'mount_point': {'readonly': True}, 1443 'role_type': {'readonly': True}, 1444 } 1445 1446 _attribute_map = { 1447 'share_id': {'key': 'shareId', 'type': 'str'}, 1448 'role_id': {'key': 'roleId', 'type': 'str'}, 1449 'mount_point': {'key': 'mountPoint', 'type': 'str'}, 1450 'role_type': {'key': 'roleType', 'type': 'str'}, 1451 } 1452 1453 def __init__( 1454 self, 1455 *, 1456 share_id: str, 1457 **kwargs 1458 ): 1459 super(MountPointMap, self).__init__(**kwargs) 1460 self.share_id = share_id 1461 self.role_id = None 1462 self.mount_point = None 1463 self.role_type = None 1464 1465 1466class NetworkAdapter(msrest.serialization.Model): 1467 """Represents the networkAdapter on a device. 1468 1469 Variables are only populated by the server, and will be ignored when sending a request. 1470 1471 :ivar adapter_id: Instance ID of network adapter. 1472 :vartype adapter_id: str 1473 :ivar adapter_position: Hardware position of network adapter. 1474 :vartype adapter_position: ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterPosition 1475 :ivar index: Logical index of the adapter. 1476 :vartype index: int 1477 :ivar node_id: Node ID of the network adapter. 1478 :vartype node_id: str 1479 :ivar network_adapter_name: Network adapter name. 1480 :vartype network_adapter_name: str 1481 :ivar label: Hardware label for the adapter. 1482 :vartype label: str 1483 :ivar mac_address: MAC address. 1484 :vartype mac_address: str 1485 :ivar link_speed: Link speed. 1486 :vartype link_speed: long 1487 :ivar status: Value indicating whether this adapter is valid. Possible values include: 1488 "Inactive", "Active". 1489 :vartype status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterStatus 1490 :param rdma_status: Value indicating whether this adapter is RDMA capable. Possible values 1491 include: "Incapable", "Capable". 1492 :type rdma_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterRDMAStatus 1493 :param dhcp_status: Value indicating whether this adapter has DHCP enabled. Possible values 1494 include: "Disabled", "Enabled". 1495 :type dhcp_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterDHCPStatus 1496 :ivar ipv4_configuration: The IPv4 configuration of the network adapter. 1497 :vartype ipv4_configuration: ~azure.mgmt.databoxedge.v2019_03_01.models.Ipv4Config 1498 :ivar ipv6_configuration: The IPv6 configuration of the network adapter. 1499 :vartype ipv6_configuration: ~azure.mgmt.databoxedge.v2019_03_01.models.Ipv6Config 1500 :ivar ipv6_link_local_address: The IPv6 local address. 1501 :vartype ipv6_link_local_address: str 1502 :ivar dns_servers: The list of DNS Servers of the device. 1503 :vartype dns_servers: list[str] 1504 """ 1505 1506 _validation = { 1507 'adapter_id': {'readonly': True}, 1508 'adapter_position': {'readonly': True}, 1509 'index': {'readonly': True}, 1510 'node_id': {'readonly': True}, 1511 'network_adapter_name': {'readonly': True}, 1512 'label': {'readonly': True}, 1513 'mac_address': {'readonly': True}, 1514 'link_speed': {'readonly': True}, 1515 'status': {'readonly': True}, 1516 'ipv4_configuration': {'readonly': True}, 1517 'ipv6_configuration': {'readonly': True}, 1518 'ipv6_link_local_address': {'readonly': True}, 1519 'dns_servers': {'readonly': True}, 1520 } 1521 1522 _attribute_map = { 1523 'adapter_id': {'key': 'adapterId', 'type': 'str'}, 1524 'adapter_position': {'key': 'adapterPosition', 'type': 'NetworkAdapterPosition'}, 1525 'index': {'key': 'index', 'type': 'int'}, 1526 'node_id': {'key': 'nodeId', 'type': 'str'}, 1527 'network_adapter_name': {'key': 'networkAdapterName', 'type': 'str'}, 1528 'label': {'key': 'label', 'type': 'str'}, 1529 'mac_address': {'key': 'macAddress', 'type': 'str'}, 1530 'link_speed': {'key': 'linkSpeed', 'type': 'long'}, 1531 'status': {'key': 'status', 'type': 'str'}, 1532 'rdma_status': {'key': 'rdmaStatus', 'type': 'str'}, 1533 'dhcp_status': {'key': 'dhcpStatus', 'type': 'str'}, 1534 'ipv4_configuration': {'key': 'ipv4Configuration', 'type': 'Ipv4Config'}, 1535 'ipv6_configuration': {'key': 'ipv6Configuration', 'type': 'Ipv6Config'}, 1536 'ipv6_link_local_address': {'key': 'ipv6LinkLocalAddress', 'type': 'str'}, 1537 'dns_servers': {'key': 'dnsServers', 'type': '[str]'}, 1538 } 1539 1540 def __init__( 1541 self, 1542 *, 1543 rdma_status: Optional[Union[str, "NetworkAdapterRDMAStatus"]] = None, 1544 dhcp_status: Optional[Union[str, "NetworkAdapterDHCPStatus"]] = None, 1545 **kwargs 1546 ): 1547 super(NetworkAdapter, self).__init__(**kwargs) 1548 self.adapter_id = None 1549 self.adapter_position = None 1550 self.index = None 1551 self.node_id = None 1552 self.network_adapter_name = None 1553 self.label = None 1554 self.mac_address = None 1555 self.link_speed = None 1556 self.status = None 1557 self.rdma_status = rdma_status 1558 self.dhcp_status = dhcp_status 1559 self.ipv4_configuration = None 1560 self.ipv6_configuration = None 1561 self.ipv6_link_local_address = None 1562 self.dns_servers = None 1563 1564 1565class NetworkAdapterPosition(msrest.serialization.Model): 1566 """The network adapter position. 1567 1568 Variables are only populated by the server, and will be ignored when sending a request. 1569 1570 :ivar network_group: The network group. Possible values include: "None", "NonRDMA", "RDMA". 1571 :vartype network_group: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkGroup 1572 :ivar port: The port. 1573 :vartype port: int 1574 """ 1575 1576 _validation = { 1577 'network_group': {'readonly': True}, 1578 'port': {'readonly': True}, 1579 } 1580 1581 _attribute_map = { 1582 'network_group': {'key': 'networkGroup', 'type': 'str'}, 1583 'port': {'key': 'port', 'type': 'int'}, 1584 } 1585 1586 def __init__( 1587 self, 1588 **kwargs 1589 ): 1590 super(NetworkAdapterPosition, self).__init__(**kwargs) 1591 self.network_group = None 1592 self.port = None 1593 1594 1595class NetworkSettings(ARMBaseModel): 1596 """The network settings of a device. 1597 1598 Variables are only populated by the server, and will be ignored when sending a request. 1599 1600 :ivar id: The path ID that uniquely identifies the object. 1601 :vartype id: str 1602 :ivar name: The object name. 1603 :vartype name: str 1604 :ivar type: The hierarchical type of the object. 1605 :vartype type: str 1606 :ivar network_adapters: The network adapter list on the device. 1607 :vartype network_adapters: list[~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapter] 1608 """ 1609 1610 _validation = { 1611 'id': {'readonly': True}, 1612 'name': {'readonly': True}, 1613 'type': {'readonly': True}, 1614 'network_adapters': {'readonly': True}, 1615 } 1616 1617 _attribute_map = { 1618 'id': {'key': 'id', 'type': 'str'}, 1619 'name': {'key': 'name', 'type': 'str'}, 1620 'type': {'key': 'type', 'type': 'str'}, 1621 'network_adapters': {'key': 'properties.networkAdapters', 'type': '[NetworkAdapter]'}, 1622 } 1623 1624 def __init__( 1625 self, 1626 **kwargs 1627 ): 1628 super(NetworkSettings, self).__init__(**kwargs) 1629 self.network_adapters = None 1630 1631 1632class Operation(msrest.serialization.Model): 1633 """Operations. 1634 1635 :param name: Name of the operation. 1636 :type name: str 1637 :param display: Properties displayed for the operation. 1638 :type display: ~azure.mgmt.databoxedge.v2019_03_01.models.OperationDisplay 1639 :param origin: Origin of the operation. 1640 :type origin: str 1641 :param service_specification: Service specification. 1642 :type service_specification: ~azure.mgmt.databoxedge.v2019_03_01.models.ServiceSpecification 1643 """ 1644 1645 _attribute_map = { 1646 'name': {'key': 'name', 'type': 'str'}, 1647 'display': {'key': 'display', 'type': 'OperationDisplay'}, 1648 'origin': {'key': 'origin', 'type': 'str'}, 1649 'service_specification': {'key': 'properties.serviceSpecification', 'type': 'ServiceSpecification'}, 1650 } 1651 1652 def __init__( 1653 self, 1654 *, 1655 name: Optional[str] = None, 1656 display: Optional["OperationDisplay"] = None, 1657 origin: Optional[str] = None, 1658 service_specification: Optional["ServiceSpecification"] = None, 1659 **kwargs 1660 ): 1661 super(Operation, self).__init__(**kwargs) 1662 self.name = name 1663 self.display = display 1664 self.origin = origin 1665 self.service_specification = service_specification 1666 1667 1668class OperationDisplay(msrest.serialization.Model): 1669 """Operation display properties. 1670 1671 :param provider: Provider name. 1672 :type provider: str 1673 :param resource: The type of resource in which the operation is performed. 1674 :type resource: str 1675 :param operation: Operation to be performed on the resource. 1676 :type operation: str 1677 :param description: Description of the operation to be performed. 1678 :type description: str 1679 """ 1680 1681 _attribute_map = { 1682 'provider': {'key': 'provider', 'type': 'str'}, 1683 'resource': {'key': 'resource', 'type': 'str'}, 1684 'operation': {'key': 'operation', 'type': 'str'}, 1685 'description': {'key': 'description', 'type': 'str'}, 1686 } 1687 1688 def __init__( 1689 self, 1690 *, 1691 provider: Optional[str] = None, 1692 resource: Optional[str] = None, 1693 operation: Optional[str] = None, 1694 description: Optional[str] = None, 1695 **kwargs 1696 ): 1697 super(OperationDisplay, self).__init__(**kwargs) 1698 self.provider = provider 1699 self.resource = resource 1700 self.operation = operation 1701 self.description = description 1702 1703 1704class OperationsList(msrest.serialization.Model): 1705 """The list of operations used for the discovery of available provider operations. 1706 1707 All required parameters must be populated in order to send to Azure. 1708 1709 :param value: Required. The value. 1710 :type value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Operation] 1711 :param next_link: Link to the next set of results. 1712 :type next_link: str 1713 """ 1714 1715 _validation = { 1716 'value': {'required': True}, 1717 } 1718 1719 _attribute_map = { 1720 'value': {'key': 'value', 'type': '[Operation]'}, 1721 'next_link': {'key': 'nextLink', 'type': 'str'}, 1722 } 1723 1724 def __init__( 1725 self, 1726 *, 1727 value: List["Operation"], 1728 next_link: Optional[str] = None, 1729 **kwargs 1730 ): 1731 super(OperationsList, self).__init__(**kwargs) 1732 self.value = value 1733 self.next_link = next_link 1734 1735 1736class Order(ARMBaseModel): 1737 """The order details. 1738 1739 Variables are only populated by the server, and will be ignored when sending a request. 1740 1741 :ivar id: The path ID that uniquely identifies the object. 1742 :vartype id: str 1743 :ivar name: The object name. 1744 :vartype name: str 1745 :ivar type: The hierarchical type of the object. 1746 :vartype type: str 1747 :param contact_information: The contact details. 1748 :type contact_information: ~azure.mgmt.databoxedge.v2019_03_01.models.ContactDetails 1749 :param shipping_address: The shipping address. 1750 :type shipping_address: ~azure.mgmt.databoxedge.v2019_03_01.models.Address 1751 :param current_status: Current status of the order. 1752 :type current_status: ~azure.mgmt.databoxedge.v2019_03_01.models.OrderStatus 1753 :ivar order_history: List of status changes in the order. 1754 :vartype order_history: list[~azure.mgmt.databoxedge.v2019_03_01.models.OrderStatus] 1755 :ivar serial_number: Serial number of the device. 1756 :vartype serial_number: str 1757 :ivar delivery_tracking_info: Tracking information for the package delivered to the customer 1758 whether it has an original or a replacement device. 1759 :vartype delivery_tracking_info: list[~azure.mgmt.databoxedge.v2019_03_01.models.TrackingInfo] 1760 :ivar return_tracking_info: Tracking information for the package returned from the customer 1761 whether it has an original or a replacement device. 1762 :vartype return_tracking_info: list[~azure.mgmt.databoxedge.v2019_03_01.models.TrackingInfo] 1763 """ 1764 1765 _validation = { 1766 'id': {'readonly': True}, 1767 'name': {'readonly': True}, 1768 'type': {'readonly': True}, 1769 'order_history': {'readonly': True}, 1770 'serial_number': {'readonly': True}, 1771 'delivery_tracking_info': {'readonly': True}, 1772 'return_tracking_info': {'readonly': True}, 1773 } 1774 1775 _attribute_map = { 1776 'id': {'key': 'id', 'type': 'str'}, 1777 'name': {'key': 'name', 'type': 'str'}, 1778 'type': {'key': 'type', 'type': 'str'}, 1779 'contact_information': {'key': 'properties.contactInformation', 'type': 'ContactDetails'}, 1780 'shipping_address': {'key': 'properties.shippingAddress', 'type': 'Address'}, 1781 'current_status': {'key': 'properties.currentStatus', 'type': 'OrderStatus'}, 1782 'order_history': {'key': 'properties.orderHistory', 'type': '[OrderStatus]'}, 1783 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 1784 'delivery_tracking_info': {'key': 'properties.deliveryTrackingInfo', 'type': '[TrackingInfo]'}, 1785 'return_tracking_info': {'key': 'properties.returnTrackingInfo', 'type': '[TrackingInfo]'}, 1786 } 1787 1788 def __init__( 1789 self, 1790 *, 1791 contact_information: Optional["ContactDetails"] = None, 1792 shipping_address: Optional["Address"] = None, 1793 current_status: Optional["OrderStatus"] = None, 1794 **kwargs 1795 ): 1796 super(Order, self).__init__(**kwargs) 1797 self.contact_information = contact_information 1798 self.shipping_address = shipping_address 1799 self.current_status = current_status 1800 self.order_history = None 1801 self.serial_number = None 1802 self.delivery_tracking_info = None 1803 self.return_tracking_info = None 1804 1805 1806class OrderList(msrest.serialization.Model): 1807 """List of order entities. 1808 1809 Variables are only populated by the server, and will be ignored when sending a request. 1810 1811 :ivar value: The list of orders. 1812 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Order] 1813 :ivar next_link: Link to the next set of results. 1814 :vartype next_link: str 1815 """ 1816 1817 _validation = { 1818 'value': {'readonly': True}, 1819 'next_link': {'readonly': True}, 1820 } 1821 1822 _attribute_map = { 1823 'value': {'key': 'value', 'type': '[Order]'}, 1824 'next_link': {'key': 'nextLink', 'type': 'str'}, 1825 } 1826 1827 def __init__( 1828 self, 1829 **kwargs 1830 ): 1831 super(OrderList, self).__init__(**kwargs) 1832 self.value = None 1833 self.next_link = None 1834 1835 1836class OrderStatus(msrest.serialization.Model): 1837 """Represents a single status change. 1838 1839 Variables are only populated by the server, and will be ignored when sending a request. 1840 1841 All required parameters must be populated in order to send to Azure. 1842 1843 :param status: Required. Status of the order as per the allowed status types. Possible values 1844 include: "Untracked", "AwaitingFulfilment", "AwaitingPreparation", "AwaitingShipment", 1845 "Shipped", "Arriving", "Delivered", "ReplacementRequested", "LostDevice", "Declined", 1846 "ReturnInitiated", "AwaitingReturnShipment", "ShippedBack", "CollectedAtMicrosoft". 1847 :type status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.OrderState 1848 :ivar update_date_time: Time of status update. 1849 :vartype update_date_time: ~datetime.datetime 1850 :param comments: Comments related to this status change. 1851 :type comments: str 1852 """ 1853 1854 _validation = { 1855 'status': {'required': True}, 1856 'update_date_time': {'readonly': True}, 1857 } 1858 1859 _attribute_map = { 1860 'status': {'key': 'status', 'type': 'str'}, 1861 'update_date_time': {'key': 'updateDateTime', 'type': 'iso-8601'}, 1862 'comments': {'key': 'comments', 'type': 'str'}, 1863 } 1864 1865 def __init__( 1866 self, 1867 *, 1868 status: Union[str, "OrderState"], 1869 comments: Optional[str] = None, 1870 **kwargs 1871 ): 1872 super(OrderStatus, self).__init__(**kwargs) 1873 self.status = status 1874 self.update_date_time = None 1875 self.comments = comments 1876 1877 1878class PeriodicTimerEventTrigger(Trigger): 1879 """Trigger details. 1880 1881 Variables are only populated by the server, and will be ignored when sending a request. 1882 1883 All required parameters must be populated in order to send to Azure. 1884 1885 :ivar id: The path ID that uniquely identifies the object. 1886 :vartype id: str 1887 :ivar name: The object name. 1888 :vartype name: str 1889 :ivar type: The hierarchical type of the object. 1890 :vartype type: str 1891 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 1892 "FileEvent", "PeriodicTimerEvent". 1893 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 1894 :param source_info: Required. Periodic timer details. 1895 :type source_info: ~azure.mgmt.databoxedge.v2019_03_01.models.PeriodicTimerSourceInfo 1896 :param sink_info: Required. Role Sink information. 1897 :type sink_info: ~azure.mgmt.databoxedge.v2019_03_01.models.RoleSinkInfo 1898 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 1899 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 1900 modules in the device, the tag can be the name or the image URL of the module. 1901 :type custom_context_tag: str 1902 """ 1903 1904 _validation = { 1905 'id': {'readonly': True}, 1906 'name': {'readonly': True}, 1907 'type': {'readonly': True}, 1908 'kind': {'required': True}, 1909 'source_info': {'required': True}, 1910 'sink_info': {'required': True}, 1911 } 1912 1913 _attribute_map = { 1914 'id': {'key': 'id', 'type': 'str'}, 1915 'name': {'key': 'name', 'type': 'str'}, 1916 'type': {'key': 'type', 'type': 'str'}, 1917 'kind': {'key': 'kind', 'type': 'str'}, 1918 'source_info': {'key': 'properties.sourceInfo', 'type': 'PeriodicTimerSourceInfo'}, 1919 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 1920 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 1921 } 1922 1923 def __init__( 1924 self, 1925 *, 1926 source_info: "PeriodicTimerSourceInfo", 1927 sink_info: "RoleSinkInfo", 1928 custom_context_tag: Optional[str] = None, 1929 **kwargs 1930 ): 1931 super(PeriodicTimerEventTrigger, self).__init__(**kwargs) 1932 self.kind = 'PeriodicTimerEvent' # type: str 1933 self.source_info = source_info 1934 self.sink_info = sink_info 1935 self.custom_context_tag = custom_context_tag 1936 1937 1938class PeriodicTimerSourceInfo(msrest.serialization.Model): 1939 """Periodic timer event source. 1940 1941 All required parameters must be populated in order to send to Azure. 1942 1943 :param start_time: Required. The time of the day that results in a valid trigger. Schedule is 1944 computed with reference to the time specified up to seconds. If timezone is not specified the 1945 time will considered to be in device timezone. The value will always be returned as UTC time. 1946 :type start_time: ~datetime.datetime 1947 :param schedule: Required. Periodic frequency at which timer event needs to be raised. Supports 1948 daily, hourly, minutes, and seconds. 1949 :type schedule: str 1950 :param topic: Topic where periodic events are published to IoT device. 1951 :type topic: str 1952 """ 1953 1954 _validation = { 1955 'start_time': {'required': True}, 1956 'schedule': {'required': True}, 1957 } 1958 1959 _attribute_map = { 1960 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 1961 'schedule': {'key': 'schedule', 'type': 'str'}, 1962 'topic': {'key': 'topic', 'type': 'str'}, 1963 } 1964 1965 def __init__( 1966 self, 1967 *, 1968 start_time: datetime.datetime, 1969 schedule: str, 1970 topic: Optional[str] = None, 1971 **kwargs 1972 ): 1973 super(PeriodicTimerSourceInfo, self).__init__(**kwargs) 1974 self.start_time = start_time 1975 self.schedule = schedule 1976 self.topic = topic 1977 1978 1979class RefreshDetails(msrest.serialization.Model): 1980 """Fields for tracking refresh job on the share. 1981 1982 :param in_progress_refresh_job_id: If a refresh share job is currently in progress on this 1983 share, this field indicates the ARM resource ID of that job. The field is empty if no job is in 1984 progress. 1985 :type in_progress_refresh_job_id: str 1986 :param last_completed_refresh_job_time_in_utc: Indicates the completed time for the last 1987 refresh job on this particular share, if any.This could be a failed job or a successful job. 1988 :type last_completed_refresh_job_time_in_utc: ~datetime.datetime 1989 :param error_manifest_file: Indicates the relative path of the error xml for the last refresh 1990 job on this particular share, if any. This could be a failed job or a successful job. 1991 :type error_manifest_file: str 1992 :param last_job: Indicates the id of the last refresh job on this particular share,if any. This 1993 could be a failed job or a successful job. 1994 :type last_job: str 1995 """ 1996 1997 _attribute_map = { 1998 'in_progress_refresh_job_id': {'key': 'inProgressRefreshJobId', 'type': 'str'}, 1999 'last_completed_refresh_job_time_in_utc': {'key': 'lastCompletedRefreshJobTimeInUTC', 'type': 'iso-8601'}, 2000 'error_manifest_file': {'key': 'errorManifestFile', 'type': 'str'}, 2001 'last_job': {'key': 'lastJob', 'type': 'str'}, 2002 } 2003 2004 def __init__( 2005 self, 2006 *, 2007 in_progress_refresh_job_id: Optional[str] = None, 2008 last_completed_refresh_job_time_in_utc: Optional[datetime.datetime] = None, 2009 error_manifest_file: Optional[str] = None, 2010 last_job: Optional[str] = None, 2011 **kwargs 2012 ): 2013 super(RefreshDetails, self).__init__(**kwargs) 2014 self.in_progress_refresh_job_id = in_progress_refresh_job_id 2015 self.last_completed_refresh_job_time_in_utc = last_completed_refresh_job_time_in_utc 2016 self.error_manifest_file = error_manifest_file 2017 self.last_job = last_job 2018 2019 2020class RoleList(msrest.serialization.Model): 2021 """Collection of all the roles on the Data Box Edge device. 2022 2023 Variables are only populated by the server, and will be ignored when sending a request. 2024 2025 :ivar value: The Value. 2026 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Role] 2027 :ivar next_link: Link to the next set of results. 2028 :vartype next_link: str 2029 """ 2030 2031 _validation = { 2032 'value': {'readonly': True}, 2033 'next_link': {'readonly': True}, 2034 } 2035 2036 _attribute_map = { 2037 'value': {'key': 'value', 'type': '[Role]'}, 2038 'next_link': {'key': 'nextLink', 'type': 'str'}, 2039 } 2040 2041 def __init__( 2042 self, 2043 **kwargs 2044 ): 2045 super(RoleList, self).__init__(**kwargs) 2046 self.value = None 2047 self.next_link = None 2048 2049 2050class RoleSinkInfo(msrest.serialization.Model): 2051 """Compute role against which events will be raised. 2052 2053 All required parameters must be populated in order to send to Azure. 2054 2055 :param role_id: Required. Compute role ID. 2056 :type role_id: str 2057 """ 2058 2059 _validation = { 2060 'role_id': {'required': True}, 2061 } 2062 2063 _attribute_map = { 2064 'role_id': {'key': 'roleId', 'type': 'str'}, 2065 } 2066 2067 def __init__( 2068 self, 2069 *, 2070 role_id: str, 2071 **kwargs 2072 ): 2073 super(RoleSinkInfo, self).__init__(**kwargs) 2074 self.role_id = role_id 2075 2076 2077class SecuritySettings(ARMBaseModel): 2078 """The security settings of a device. 2079 2080 Variables are only populated by the server, and will be ignored when sending a request. 2081 2082 All required parameters must be populated in order to send to Azure. 2083 2084 :ivar id: The path ID that uniquely identifies the object. 2085 :vartype id: str 2086 :ivar name: The object name. 2087 :vartype name: str 2088 :ivar type: The hierarchical type of the object. 2089 :vartype type: str 2090 :param device_admin_password: Required. Device administrator password as an encrypted string 2091 (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual 2092 password should have at least 8 characters that are a combination of uppercase, lowercase, 2093 numeric, and special characters. 2094 :type device_admin_password: 2095 ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2096 """ 2097 2098 _validation = { 2099 'id': {'readonly': True}, 2100 'name': {'readonly': True}, 2101 'type': {'readonly': True}, 2102 'device_admin_password': {'required': True}, 2103 } 2104 2105 _attribute_map = { 2106 'id': {'key': 'id', 'type': 'str'}, 2107 'name': {'key': 'name', 'type': 'str'}, 2108 'type': {'key': 'type', 'type': 'str'}, 2109 'device_admin_password': {'key': 'properties.deviceAdminPassword', 'type': 'AsymmetricEncryptedSecret'}, 2110 } 2111 2112 def __init__( 2113 self, 2114 *, 2115 device_admin_password: "AsymmetricEncryptedSecret", 2116 **kwargs 2117 ): 2118 super(SecuritySettings, self).__init__(**kwargs) 2119 self.device_admin_password = device_admin_password 2120 2121 2122class ServiceSpecification(msrest.serialization.Model): 2123 """Service specification. 2124 2125 :param metric_specifications: Metric specification as defined by shoebox. 2126 :type metric_specifications: 2127 list[~azure.mgmt.databoxedge.v2019_03_01.models.MetricSpecificationV1] 2128 """ 2129 2130 _attribute_map = { 2131 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecificationV1]'}, 2132 } 2133 2134 def __init__( 2135 self, 2136 *, 2137 metric_specifications: Optional[List["MetricSpecificationV1"]] = None, 2138 **kwargs 2139 ): 2140 super(ServiceSpecification, self).__init__(**kwargs) 2141 self.metric_specifications = metric_specifications 2142 2143 2144class Share(ARMBaseModel): 2145 """Represents a share on the Data Box Edge/Gateway device. 2146 2147 Variables are only populated by the server, and will be ignored when sending a request. 2148 2149 All required parameters must be populated in order to send to Azure. 2150 2151 :ivar id: The path ID that uniquely identifies the object. 2152 :vartype id: str 2153 :ivar name: The object name. 2154 :vartype name: str 2155 :ivar type: The hierarchical type of the object. 2156 :vartype type: str 2157 :param description: Description for the share. 2158 :type description: str 2159 :param share_status: Required. Current status of the share. Possible values include: "Online", 2160 "Offline". 2161 :type share_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareStatus 2162 :param monitoring_status: Required. Current monitoring status of the share. Possible values 2163 include: "Enabled", "Disabled". 2164 :type monitoring_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MonitoringStatus 2165 :param azure_container_info: Azure container mapping for the share. 2166 :type azure_container_info: ~azure.mgmt.databoxedge.v2019_03_01.models.AzureContainerInfo 2167 :param access_protocol: Required. Access protocol to be used by the share. Possible values 2168 include: "SMB", "NFS". 2169 :type access_protocol: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessProtocol 2170 :param user_access_rights: Mapping of users and corresponding access rights on the share 2171 (required for SMB protocol). 2172 :type user_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.UserAccessRight] 2173 :param client_access_rights: List of IP addresses and corresponding access rights on the 2174 share(required for NFS protocol). 2175 :type client_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.ClientAccessRight] 2176 :param refresh_details: Details of the refresh job on this share. 2177 :type refresh_details: ~azure.mgmt.databoxedge.v2019_03_01.models.RefreshDetails 2178 :ivar share_mappings: Share mount point to the role. 2179 :vartype share_mappings: list[~azure.mgmt.databoxedge.v2019_03_01.models.MountPointMap] 2180 :param data_policy: Data policy of the share. Possible values include: "Cloud", "Local". 2181 :type data_policy: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DataPolicy 2182 """ 2183 2184 _validation = { 2185 'id': {'readonly': True}, 2186 'name': {'readonly': True}, 2187 'type': {'readonly': True}, 2188 'share_status': {'required': True}, 2189 'monitoring_status': {'required': True}, 2190 'access_protocol': {'required': True}, 2191 'share_mappings': {'readonly': True}, 2192 } 2193 2194 _attribute_map = { 2195 'id': {'key': 'id', 'type': 'str'}, 2196 'name': {'key': 'name', 'type': 'str'}, 2197 'type': {'key': 'type', 'type': 'str'}, 2198 'description': {'key': 'properties.description', 'type': 'str'}, 2199 'share_status': {'key': 'properties.shareStatus', 'type': 'str'}, 2200 'monitoring_status': {'key': 'properties.monitoringStatus', 'type': 'str'}, 2201 'azure_container_info': {'key': 'properties.azureContainerInfo', 'type': 'AzureContainerInfo'}, 2202 'access_protocol': {'key': 'properties.accessProtocol', 'type': 'str'}, 2203 'user_access_rights': {'key': 'properties.userAccessRights', 'type': '[UserAccessRight]'}, 2204 'client_access_rights': {'key': 'properties.clientAccessRights', 'type': '[ClientAccessRight]'}, 2205 'refresh_details': {'key': 'properties.refreshDetails', 'type': 'RefreshDetails'}, 2206 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 2207 'data_policy': {'key': 'properties.dataPolicy', 'type': 'str'}, 2208 } 2209 2210 def __init__( 2211 self, 2212 *, 2213 share_status: Union[str, "ShareStatus"], 2214 monitoring_status: Union[str, "MonitoringStatus"], 2215 access_protocol: Union[str, "ShareAccessProtocol"], 2216 description: Optional[str] = None, 2217 azure_container_info: Optional["AzureContainerInfo"] = None, 2218 user_access_rights: Optional[List["UserAccessRight"]] = None, 2219 client_access_rights: Optional[List["ClientAccessRight"]] = None, 2220 refresh_details: Optional["RefreshDetails"] = None, 2221 data_policy: Optional[Union[str, "DataPolicy"]] = None, 2222 **kwargs 2223 ): 2224 super(Share, self).__init__(**kwargs) 2225 self.description = description 2226 self.share_status = share_status 2227 self.monitoring_status = monitoring_status 2228 self.azure_container_info = azure_container_info 2229 self.access_protocol = access_protocol 2230 self.user_access_rights = user_access_rights 2231 self.client_access_rights = client_access_rights 2232 self.refresh_details = refresh_details 2233 self.share_mappings = None 2234 self.data_policy = data_policy 2235 2236 2237class ShareAccessRight(msrest.serialization.Model): 2238 """Specifies the mapping between this particular user and the type of access he has on shares on this device. 2239 2240 All required parameters must be populated in order to send to Azure. 2241 2242 :param share_id: Required. The share ID. 2243 :type share_id: str 2244 :param access_type: Required. Type of access to be allowed on the share for this user. Possible 2245 values include: "Change", "Read", "Custom". 2246 :type access_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessType 2247 """ 2248 2249 _validation = { 2250 'share_id': {'required': True}, 2251 'access_type': {'required': True}, 2252 } 2253 2254 _attribute_map = { 2255 'share_id': {'key': 'shareId', 'type': 'str'}, 2256 'access_type': {'key': 'accessType', 'type': 'str'}, 2257 } 2258 2259 def __init__( 2260 self, 2261 *, 2262 share_id: str, 2263 access_type: Union[str, "ShareAccessType"], 2264 **kwargs 2265 ): 2266 super(ShareAccessRight, self).__init__(**kwargs) 2267 self.share_id = share_id 2268 self.access_type = access_type 2269 2270 2271class ShareList(msrest.serialization.Model): 2272 """Collection of all the shares on the Data Box Edge/Gateway device. 2273 2274 Variables are only populated by the server, and will be ignored when sending a request. 2275 2276 :ivar value: The list of shares. 2277 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Share] 2278 :ivar next_link: Link to the next set of results. 2279 :vartype next_link: str 2280 """ 2281 2282 _validation = { 2283 'value': {'readonly': True}, 2284 'next_link': {'readonly': True}, 2285 } 2286 2287 _attribute_map = { 2288 'value': {'key': 'value', 'type': '[Share]'}, 2289 'next_link': {'key': 'nextLink', 'type': 'str'}, 2290 } 2291 2292 def __init__( 2293 self, 2294 **kwargs 2295 ): 2296 super(ShareList, self).__init__(**kwargs) 2297 self.value = None 2298 self.next_link = None 2299 2300 2301class Sku(msrest.serialization.Model): 2302 """The SKU type. 2303 2304 :param name: SKU name. Possible values include: "Gateway", "Edge". 2305 :type name: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SkuName 2306 :param tier: The SKU tier. This is based on the SKU name. Possible values include: "Standard". 2307 :type tier: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SkuTier 2308 """ 2309 2310 _attribute_map = { 2311 'name': {'key': 'name', 'type': 'str'}, 2312 'tier': {'key': 'tier', 'type': 'str'}, 2313 } 2314 2315 def __init__( 2316 self, 2317 *, 2318 name: Optional[Union[str, "SkuName"]] = None, 2319 tier: Optional[Union[str, "SkuTier"]] = None, 2320 **kwargs 2321 ): 2322 super(Sku, self).__init__(**kwargs) 2323 self.name = name 2324 self.tier = tier 2325 2326 2327class StorageAccountCredential(ARMBaseModel): 2328 """The storage account credential. 2329 2330 Variables are only populated by the server, and will be ignored when sending a request. 2331 2332 All required parameters must be populated in order to send to Azure. 2333 2334 :ivar id: The path ID that uniquely identifies the object. 2335 :vartype id: str 2336 :ivar name: The object name. 2337 :vartype name: str 2338 :ivar type: The hierarchical type of the object. 2339 :vartype type: str 2340 :param alias: Required. Alias for the storage account. 2341 :type alias: str 2342 :param user_name: Username for the storage account. 2343 :type user_name: str 2344 :param account_key: Encrypted storage key. 2345 :type account_key: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2346 :param connection_string: Connection string for the storage account. Use this string if 2347 username and account key are not specified. 2348 :type connection_string: str 2349 :param ssl_status: Required. Signifies whether SSL needs to be enabled or not. Possible values 2350 include: "Enabled", "Disabled". 2351 :type ssl_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SSLStatus 2352 :param blob_domain_name: Blob end point for private clouds. 2353 :type blob_domain_name: str 2354 :param account_type: Required. Type of storage accessed on the storage account. Possible values 2355 include: "GeneralPurposeStorage", "BlobStorage". 2356 :type account_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AccountType 2357 """ 2358 2359 _validation = { 2360 'id': {'readonly': True}, 2361 'name': {'readonly': True}, 2362 'type': {'readonly': True}, 2363 'alias': {'required': True}, 2364 'ssl_status': {'required': True}, 2365 'account_type': {'required': True}, 2366 } 2367 2368 _attribute_map = { 2369 'id': {'key': 'id', 'type': 'str'}, 2370 'name': {'key': 'name', 'type': 'str'}, 2371 'type': {'key': 'type', 'type': 'str'}, 2372 'alias': {'key': 'properties.alias', 'type': 'str'}, 2373 'user_name': {'key': 'properties.userName', 'type': 'str'}, 2374 'account_key': {'key': 'properties.accountKey', 'type': 'AsymmetricEncryptedSecret'}, 2375 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, 2376 'ssl_status': {'key': 'properties.sslStatus', 'type': 'str'}, 2377 'blob_domain_name': {'key': 'properties.blobDomainName', 'type': 'str'}, 2378 'account_type': {'key': 'properties.accountType', 'type': 'str'}, 2379 } 2380 2381 def __init__( 2382 self, 2383 *, 2384 alias: str, 2385 ssl_status: Union[str, "SSLStatus"], 2386 account_type: Union[str, "AccountType"], 2387 user_name: Optional[str] = None, 2388 account_key: Optional["AsymmetricEncryptedSecret"] = None, 2389 connection_string: Optional[str] = None, 2390 blob_domain_name: Optional[str] = None, 2391 **kwargs 2392 ): 2393 super(StorageAccountCredential, self).__init__(**kwargs) 2394 self.alias = alias 2395 self.user_name = user_name 2396 self.account_key = account_key 2397 self.connection_string = connection_string 2398 self.ssl_status = ssl_status 2399 self.blob_domain_name = blob_domain_name 2400 self.account_type = account_type 2401 2402 2403class StorageAccountCredentialList(msrest.serialization.Model): 2404 """The collection of storage account credentials. 2405 2406 Variables are only populated by the server, and will be ignored when sending a request. 2407 2408 :ivar value: The value. 2409 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.StorageAccountCredential] 2410 :ivar next_link: Link to the next set of results. 2411 :vartype next_link: str 2412 """ 2413 2414 _validation = { 2415 'value': {'readonly': True}, 2416 'next_link': {'readonly': True}, 2417 } 2418 2419 _attribute_map = { 2420 'value': {'key': 'value', 'type': '[StorageAccountCredential]'}, 2421 'next_link': {'key': 'nextLink', 'type': 'str'}, 2422 } 2423 2424 def __init__( 2425 self, 2426 **kwargs 2427 ): 2428 super(StorageAccountCredentialList, self).__init__(**kwargs) 2429 self.value = None 2430 self.next_link = None 2431 2432 2433class SymmetricKey(msrest.serialization.Model): 2434 """Symmetric key for authentication. 2435 2436 :param connection_string: Connection string based on the symmetric key. 2437 :type connection_string: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2438 """ 2439 2440 _attribute_map = { 2441 'connection_string': {'key': 'connectionString', 'type': 'AsymmetricEncryptedSecret'}, 2442 } 2443 2444 def __init__( 2445 self, 2446 *, 2447 connection_string: Optional["AsymmetricEncryptedSecret"] = None, 2448 **kwargs 2449 ): 2450 super(SymmetricKey, self).__init__(**kwargs) 2451 self.connection_string = connection_string 2452 2453 2454class TrackingInfo(msrest.serialization.Model): 2455 """Tracking courier information. 2456 2457 :param serial_number: Serial number of the device being tracked. 2458 :type serial_number: str 2459 :param carrier_name: Name of the carrier used in the delivery. 2460 :type carrier_name: str 2461 :param tracking_id: Tracking ID of the shipment. 2462 :type tracking_id: str 2463 :param tracking_url: Tracking URL of the shipment. 2464 :type tracking_url: str 2465 """ 2466 2467 _attribute_map = { 2468 'serial_number': {'key': 'serialNumber', 'type': 'str'}, 2469 'carrier_name': {'key': 'carrierName', 'type': 'str'}, 2470 'tracking_id': {'key': 'trackingId', 'type': 'str'}, 2471 'tracking_url': {'key': 'trackingUrl', 'type': 'str'}, 2472 } 2473 2474 def __init__( 2475 self, 2476 *, 2477 serial_number: Optional[str] = None, 2478 carrier_name: Optional[str] = None, 2479 tracking_id: Optional[str] = None, 2480 tracking_url: Optional[str] = None, 2481 **kwargs 2482 ): 2483 super(TrackingInfo, self).__init__(**kwargs) 2484 self.serial_number = serial_number 2485 self.carrier_name = carrier_name 2486 self.tracking_id = tracking_id 2487 self.tracking_url = tracking_url 2488 2489 2490class TriggerList(msrest.serialization.Model): 2491 """Collection of all trigger on the data box edge device. 2492 2493 Variables are only populated by the server, and will be ignored when sending a request. 2494 2495 :ivar value: The list of triggers. 2496 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Trigger] 2497 :ivar next_link: Link to the next set of results. 2498 :vartype next_link: str 2499 """ 2500 2501 _validation = { 2502 'value': {'readonly': True}, 2503 'next_link': {'readonly': True}, 2504 } 2505 2506 _attribute_map = { 2507 'value': {'key': 'value', 'type': '[Trigger]'}, 2508 'next_link': {'key': 'nextLink', 'type': 'str'}, 2509 } 2510 2511 def __init__( 2512 self, 2513 **kwargs 2514 ): 2515 super(TriggerList, self).__init__(**kwargs) 2516 self.value = None 2517 self.next_link = None 2518 2519 2520class UpdateDownloadProgress(msrest.serialization.Model): 2521 """Details about the download progress of update. 2522 2523 Variables are only populated by the server, and will be ignored when sending a request. 2524 2525 :ivar download_phase: The download phase. Possible values include: "Unknown", "Initializing", 2526 "Downloading", "Verifying". 2527 :vartype download_phase: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DownloadPhase 2528 :ivar percent_complete: Percentage of completion. 2529 :vartype percent_complete: int 2530 :ivar total_bytes_to_download: Total bytes to download. 2531 :vartype total_bytes_to_download: float 2532 :ivar total_bytes_downloaded: Total bytes downloaded. 2533 :vartype total_bytes_downloaded: float 2534 :ivar number_of_updates_to_download: Number of updates to download. 2535 :vartype number_of_updates_to_download: int 2536 :ivar number_of_updates_downloaded: Number of updates downloaded. 2537 :vartype number_of_updates_downloaded: int 2538 """ 2539 2540 _validation = { 2541 'download_phase': {'readonly': True}, 2542 'percent_complete': {'readonly': True}, 2543 'total_bytes_to_download': {'readonly': True}, 2544 'total_bytes_downloaded': {'readonly': True}, 2545 'number_of_updates_to_download': {'readonly': True}, 2546 'number_of_updates_downloaded': {'readonly': True}, 2547 } 2548 2549 _attribute_map = { 2550 'download_phase': {'key': 'downloadPhase', 'type': 'str'}, 2551 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 2552 'total_bytes_to_download': {'key': 'totalBytesToDownload', 'type': 'float'}, 2553 'total_bytes_downloaded': {'key': 'totalBytesDownloaded', 'type': 'float'}, 2554 'number_of_updates_to_download': {'key': 'numberOfUpdatesToDownload', 'type': 'int'}, 2555 'number_of_updates_downloaded': {'key': 'numberOfUpdatesDownloaded', 'type': 'int'}, 2556 } 2557 2558 def __init__( 2559 self, 2560 **kwargs 2561 ): 2562 super(UpdateDownloadProgress, self).__init__(**kwargs) 2563 self.download_phase = None 2564 self.percent_complete = None 2565 self.total_bytes_to_download = None 2566 self.total_bytes_downloaded = None 2567 self.number_of_updates_to_download = None 2568 self.number_of_updates_downloaded = None 2569 2570 2571class UpdateInstallProgress(msrest.serialization.Model): 2572 """Progress details during installation of updates. 2573 2574 Variables are only populated by the server, and will be ignored when sending a request. 2575 2576 :ivar percent_complete: Percentage completed. 2577 :vartype percent_complete: int 2578 :ivar number_of_updates_to_install: Number of updates to install. 2579 :vartype number_of_updates_to_install: int 2580 :ivar number_of_updates_installed: Number of updates installed. 2581 :vartype number_of_updates_installed: int 2582 """ 2583 2584 _validation = { 2585 'percent_complete': {'readonly': True}, 2586 'number_of_updates_to_install': {'readonly': True}, 2587 'number_of_updates_installed': {'readonly': True}, 2588 } 2589 2590 _attribute_map = { 2591 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 2592 'number_of_updates_to_install': {'key': 'numberOfUpdatesToInstall', 'type': 'int'}, 2593 'number_of_updates_installed': {'key': 'numberOfUpdatesInstalled', 'type': 'int'}, 2594 } 2595 2596 def __init__( 2597 self, 2598 **kwargs 2599 ): 2600 super(UpdateInstallProgress, self).__init__(**kwargs) 2601 self.percent_complete = None 2602 self.number_of_updates_to_install = None 2603 self.number_of_updates_installed = None 2604 2605 2606class UpdateSummary(ARMBaseModel): 2607 """Details about ongoing updates and availability of updates on the device. 2608 2609 Variables are only populated by the server, and will be ignored when sending a request. 2610 2611 :ivar id: The path ID that uniquely identifies the object. 2612 :vartype id: str 2613 :ivar name: The object name. 2614 :vartype name: str 2615 :ivar type: The hierarchical type of the object. 2616 :vartype type: str 2617 :param device_version_number: The current version of the device in format: 1.2.17312.13.",. 2618 :type device_version_number: str 2619 :param friendly_device_version_name: The current version of the device in text format. 2620 :type friendly_device_version_name: str 2621 :param device_last_scanned_date_time: The last time when a scan was done on the device. 2622 :type device_last_scanned_date_time: ~datetime.datetime 2623 :param last_completed_scan_job_date_time: The time when the last scan job was completed 2624 (success/cancelled/failed) on the appliance. 2625 :type last_completed_scan_job_date_time: ~datetime.datetime 2626 :ivar last_completed_download_job_date_time: The time when the last Download job was completed 2627 (success/cancelled/failed) on the appliance. 2628 :vartype last_completed_download_job_date_time: ~datetime.datetime 2629 :ivar last_completed_install_job_date_time: The time when the last Install job was completed 2630 (success/cancelled/failed) on the appliance. 2631 :vartype last_completed_install_job_date_time: ~datetime.datetime 2632 :ivar total_number_of_updates_available: The number of updates available for the current device 2633 version as per the last device scan. 2634 :vartype total_number_of_updates_available: int 2635 :ivar total_number_of_updates_pending_download: The total number of items pending download. 2636 :vartype total_number_of_updates_pending_download: int 2637 :ivar total_number_of_updates_pending_install: The total number of items pending install. 2638 :vartype total_number_of_updates_pending_install: int 2639 :ivar reboot_behavior: Indicates if updates are available and at least one of the updates needs 2640 a reboot. Possible values include: "NeverReboots", "RequiresReboot", "RequestReboot". 2641 :vartype reboot_behavior: str or 2642 ~azure.mgmt.databoxedge.v2019_03_01.models.InstallRebootBehavior 2643 :ivar ongoing_update_operation: The current update operation. Possible values include: "None", 2644 "Scan", "Download", "Install". 2645 :vartype ongoing_update_operation: str or 2646 ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateOperation 2647 :ivar in_progress_download_job_id: The job ID of the download job in progress. 2648 :vartype in_progress_download_job_id: str 2649 :ivar in_progress_install_job_id: The job ID of the install job in progress. 2650 :vartype in_progress_install_job_id: str 2651 :ivar in_progress_download_job_started_date_time: The time when the currently running download 2652 (if any) started. 2653 :vartype in_progress_download_job_started_date_time: ~datetime.datetime 2654 :ivar in_progress_install_job_started_date_time: The time when the currently running install 2655 (if any) started. 2656 :vartype in_progress_install_job_started_date_time: ~datetime.datetime 2657 :ivar update_titles: The list of updates available for install. 2658 :vartype update_titles: list[str] 2659 :ivar total_update_size_in_bytes: The total size of updates available for download in bytes. 2660 :vartype total_update_size_in_bytes: float 2661 """ 2662 2663 _validation = { 2664 'id': {'readonly': True}, 2665 'name': {'readonly': True}, 2666 'type': {'readonly': True}, 2667 'last_completed_download_job_date_time': {'readonly': True}, 2668 'last_completed_install_job_date_time': {'readonly': True}, 2669 'total_number_of_updates_available': {'readonly': True}, 2670 'total_number_of_updates_pending_download': {'readonly': True}, 2671 'total_number_of_updates_pending_install': {'readonly': True}, 2672 'reboot_behavior': {'readonly': True}, 2673 'ongoing_update_operation': {'readonly': True}, 2674 'in_progress_download_job_id': {'readonly': True}, 2675 'in_progress_install_job_id': {'readonly': True}, 2676 'in_progress_download_job_started_date_time': {'readonly': True}, 2677 'in_progress_install_job_started_date_time': {'readonly': True}, 2678 'update_titles': {'readonly': True}, 2679 'total_update_size_in_bytes': {'readonly': True}, 2680 } 2681 2682 _attribute_map = { 2683 'id': {'key': 'id', 'type': 'str'}, 2684 'name': {'key': 'name', 'type': 'str'}, 2685 'type': {'key': 'type', 'type': 'str'}, 2686 'device_version_number': {'key': 'properties.deviceVersionNumber', 'type': 'str'}, 2687 'friendly_device_version_name': {'key': 'properties.friendlyDeviceVersionName', 'type': 'str'}, 2688 'device_last_scanned_date_time': {'key': 'properties.deviceLastScannedDateTime', 'type': 'iso-8601'}, 2689 'last_completed_scan_job_date_time': {'key': 'properties.lastCompletedScanJobDateTime', 'type': 'iso-8601'}, 2690 'last_completed_download_job_date_time': {'key': 'properties.lastCompletedDownloadJobDateTime', 'type': 'iso-8601'}, 2691 'last_completed_install_job_date_time': {'key': 'properties.lastCompletedInstallJobDateTime', 'type': 'iso-8601'}, 2692 'total_number_of_updates_available': {'key': 'properties.totalNumberOfUpdatesAvailable', 'type': 'int'}, 2693 'total_number_of_updates_pending_download': {'key': 'properties.totalNumberOfUpdatesPendingDownload', 'type': 'int'}, 2694 'total_number_of_updates_pending_install': {'key': 'properties.totalNumberOfUpdatesPendingInstall', 'type': 'int'}, 2695 'reboot_behavior': {'key': 'properties.rebootBehavior', 'type': 'str'}, 2696 'ongoing_update_operation': {'key': 'properties.ongoingUpdateOperation', 'type': 'str'}, 2697 'in_progress_download_job_id': {'key': 'properties.inProgressDownloadJobId', 'type': 'str'}, 2698 'in_progress_install_job_id': {'key': 'properties.inProgressInstallJobId', 'type': 'str'}, 2699 'in_progress_download_job_started_date_time': {'key': 'properties.inProgressDownloadJobStartedDateTime', 'type': 'iso-8601'}, 2700 'in_progress_install_job_started_date_time': {'key': 'properties.inProgressInstallJobStartedDateTime', 'type': 'iso-8601'}, 2701 'update_titles': {'key': 'properties.updateTitles', 'type': '[str]'}, 2702 'total_update_size_in_bytes': {'key': 'properties.totalUpdateSizeInBytes', 'type': 'float'}, 2703 } 2704 2705 def __init__( 2706 self, 2707 *, 2708 device_version_number: Optional[str] = None, 2709 friendly_device_version_name: Optional[str] = None, 2710 device_last_scanned_date_time: Optional[datetime.datetime] = None, 2711 last_completed_scan_job_date_time: Optional[datetime.datetime] = None, 2712 **kwargs 2713 ): 2714 super(UpdateSummary, self).__init__(**kwargs) 2715 self.device_version_number = device_version_number 2716 self.friendly_device_version_name = friendly_device_version_name 2717 self.device_last_scanned_date_time = device_last_scanned_date_time 2718 self.last_completed_scan_job_date_time = last_completed_scan_job_date_time 2719 self.last_completed_download_job_date_time = None 2720 self.last_completed_install_job_date_time = None 2721 self.total_number_of_updates_available = None 2722 self.total_number_of_updates_pending_download = None 2723 self.total_number_of_updates_pending_install = None 2724 self.reboot_behavior = None 2725 self.ongoing_update_operation = None 2726 self.in_progress_download_job_id = None 2727 self.in_progress_install_job_id = None 2728 self.in_progress_download_job_started_date_time = None 2729 self.in_progress_install_job_started_date_time = None 2730 self.update_titles = None 2731 self.total_update_size_in_bytes = None 2732 2733 2734class UploadCertificateRequest(msrest.serialization.Model): 2735 """The upload certificate request. 2736 2737 All required parameters must be populated in order to send to Azure. 2738 2739 :param authentication_type: The authentication type. Possible values include: "Invalid", 2740 "AzureActiveDirectory". 2741 :type authentication_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AuthenticationType 2742 :param certificate: Required. The base64 encoded certificate raw data. 2743 :type certificate: str 2744 """ 2745 2746 _validation = { 2747 'certificate': {'required': True}, 2748 } 2749 2750 _attribute_map = { 2751 'authentication_type': {'key': 'properties.authenticationType', 'type': 'str'}, 2752 'certificate': {'key': 'properties.certificate', 'type': 'str'}, 2753 } 2754 2755 def __init__( 2756 self, 2757 *, 2758 certificate: str, 2759 authentication_type: Optional[Union[str, "AuthenticationType"]] = None, 2760 **kwargs 2761 ): 2762 super(UploadCertificateRequest, self).__init__(**kwargs) 2763 self.authentication_type = authentication_type 2764 self.certificate = certificate 2765 2766 2767class UploadCertificateResponse(msrest.serialization.Model): 2768 """The upload registration certificate response. 2769 2770 All required parameters must be populated in order to send to Azure. 2771 2772 :param auth_type: Specifies authentication type. Possible values include: "Invalid", 2773 "AzureActiveDirectory". 2774 :type auth_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AuthenticationType 2775 :param resource_id: Required. The resource ID of the Data Box Edge/Gateway device. 2776 :type resource_id: str 2777 :param aad_authority: Required. Azure Active Directory tenant authority. 2778 :type aad_authority: str 2779 :param aad_tenant_id: Required. Azure Active Directory tenant ID. 2780 :type aad_tenant_id: str 2781 :param service_principal_client_id: Required. Azure Active Directory service principal client 2782 ID. 2783 :type service_principal_client_id: str 2784 :param service_principal_object_id: Required. Azure Active Directory service principal object 2785 ID. 2786 :type service_principal_object_id: str 2787 :param azure_management_endpoint_audience: Required. The azure management endpoint audience. 2788 :type azure_management_endpoint_audience: str 2789 """ 2790 2791 _validation = { 2792 'resource_id': {'required': True}, 2793 'aad_authority': {'required': True}, 2794 'aad_tenant_id': {'required': True}, 2795 'service_principal_client_id': {'required': True}, 2796 'service_principal_object_id': {'required': True}, 2797 'azure_management_endpoint_audience': {'required': True}, 2798 } 2799 2800 _attribute_map = { 2801 'auth_type': {'key': 'authType', 'type': 'str'}, 2802 'resource_id': {'key': 'resourceId', 'type': 'str'}, 2803 'aad_authority': {'key': 'aadAuthority', 'type': 'str'}, 2804 'aad_tenant_id': {'key': 'aadTenantId', 'type': 'str'}, 2805 'service_principal_client_id': {'key': 'servicePrincipalClientId', 'type': 'str'}, 2806 'service_principal_object_id': {'key': 'servicePrincipalObjectId', 'type': 'str'}, 2807 'azure_management_endpoint_audience': {'key': 'azureManagementEndpointAudience', 'type': 'str'}, 2808 } 2809 2810 def __init__( 2811 self, 2812 *, 2813 resource_id: str, 2814 aad_authority: str, 2815 aad_tenant_id: str, 2816 service_principal_client_id: str, 2817 service_principal_object_id: str, 2818 azure_management_endpoint_audience: str, 2819 auth_type: Optional[Union[str, "AuthenticationType"]] = None, 2820 **kwargs 2821 ): 2822 super(UploadCertificateResponse, self).__init__(**kwargs) 2823 self.auth_type = auth_type 2824 self.resource_id = resource_id 2825 self.aad_authority = aad_authority 2826 self.aad_tenant_id = aad_tenant_id 2827 self.service_principal_client_id = service_principal_client_id 2828 self.service_principal_object_id = service_principal_object_id 2829 self.azure_management_endpoint_audience = azure_management_endpoint_audience 2830 2831 2832class User(ARMBaseModel): 2833 """Represents a user who has access to one or more shares on the Data Box Edge/Gateway device. 2834 2835 Variables are only populated by the server, and will be ignored when sending a request. 2836 2837 :ivar id: The path ID that uniquely identifies the object. 2838 :vartype id: str 2839 :ivar name: The object name. 2840 :vartype name: str 2841 :ivar type: The hierarchical type of the object. 2842 :vartype type: str 2843 :param encrypted_password: The password details. 2844 :type encrypted_password: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2845 :param share_access_rights: List of shares that the user has rights on. This field should not 2846 be specified during user creation. 2847 :type share_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessRight] 2848 """ 2849 2850 _validation = { 2851 'id': {'readonly': True}, 2852 'name': {'readonly': True}, 2853 'type': {'readonly': True}, 2854 } 2855 2856 _attribute_map = { 2857 'id': {'key': 'id', 'type': 'str'}, 2858 'name': {'key': 'name', 'type': 'str'}, 2859 'type': {'key': 'type', 'type': 'str'}, 2860 'encrypted_password': {'key': 'properties.encryptedPassword', 'type': 'AsymmetricEncryptedSecret'}, 2861 'share_access_rights': {'key': 'properties.shareAccessRights', 'type': '[ShareAccessRight]'}, 2862 } 2863 2864 def __init__( 2865 self, 2866 *, 2867 encrypted_password: Optional["AsymmetricEncryptedSecret"] = None, 2868 share_access_rights: Optional[List["ShareAccessRight"]] = None, 2869 **kwargs 2870 ): 2871 super(User, self).__init__(**kwargs) 2872 self.encrypted_password = encrypted_password 2873 self.share_access_rights = share_access_rights 2874 2875 2876class UserAccessRight(msrest.serialization.Model): 2877 """The mapping between a particular user and the access type on the SMB share. 2878 2879 All required parameters must be populated in order to send to Azure. 2880 2881 :param user_id: Required. User ID (already existing in the device). 2882 :type user_id: str 2883 :param access_type: Required. Type of access to be allowed for the user. Possible values 2884 include: "Change", "Read", "Custom". 2885 :type access_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessType 2886 """ 2887 2888 _validation = { 2889 'user_id': {'required': True}, 2890 'access_type': {'required': True}, 2891 } 2892 2893 _attribute_map = { 2894 'user_id': {'key': 'userId', 'type': 'str'}, 2895 'access_type': {'key': 'accessType', 'type': 'str'}, 2896 } 2897 2898 def __init__( 2899 self, 2900 *, 2901 user_id: str, 2902 access_type: Union[str, "ShareAccessType"], 2903 **kwargs 2904 ): 2905 super(UserAccessRight, self).__init__(**kwargs) 2906 self.user_id = user_id 2907 self.access_type = access_type 2908 2909 2910class UserList(msrest.serialization.Model): 2911 """Collection of users. 2912 2913 Variables are only populated by the server, and will be ignored when sending a request. 2914 2915 :ivar value: The list of users. 2916 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.User] 2917 :ivar next_link: Link to the next set of results. 2918 :vartype next_link: str 2919 """ 2920 2921 _validation = { 2922 'value': {'readonly': True}, 2923 'next_link': {'readonly': True}, 2924 } 2925 2926 _attribute_map = { 2927 'value': {'key': 'value', 'type': '[User]'}, 2928 'next_link': {'key': 'nextLink', 'type': 'str'}, 2929 } 2930 2931 def __init__( 2932 self, 2933 **kwargs 2934 ): 2935 super(UserList, self).__init__(**kwargs) 2936 self.value = None 2937 self.next_link = None 2938