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 msrest.serialization 10 11 12class Address(msrest.serialization.Model): 13 """The shipping address of the customer. 14 15 All required parameters must be populated in order to send to Azure. 16 17 :param address_line1: Required. The address line1. 18 :type address_line1: str 19 :param address_line2: The address line2. 20 :type address_line2: str 21 :param address_line3: The address line3. 22 :type address_line3: str 23 :param postal_code: Required. The postal code. 24 :type postal_code: str 25 :param city: Required. The city name. 26 :type city: str 27 :param state: Required. The state name. 28 :type state: str 29 :param country: Required. The country name. 30 :type country: str 31 """ 32 33 _validation = { 34 'address_line1': {'required': True}, 35 'postal_code': {'required': True}, 36 'city': {'required': True}, 37 'state': {'required': True}, 38 'country': {'required': True}, 39 } 40 41 _attribute_map = { 42 'address_line1': {'key': 'addressLine1', 'type': 'str'}, 43 'address_line2': {'key': 'addressLine2', 'type': 'str'}, 44 'address_line3': {'key': 'addressLine3', 'type': 'str'}, 45 'postal_code': {'key': 'postalCode', 'type': 'str'}, 46 'city': {'key': 'city', 'type': 'str'}, 47 'state': {'key': 'state', 'type': 'str'}, 48 'country': {'key': 'country', 'type': 'str'}, 49 } 50 51 def __init__( 52 self, 53 **kwargs 54 ): 55 super(Address, self).__init__(**kwargs) 56 self.address_line1 = kwargs['address_line1'] 57 self.address_line2 = kwargs.get('address_line2', None) 58 self.address_line3 = kwargs.get('address_line3', None) 59 self.postal_code = kwargs['postal_code'] 60 self.city = kwargs['city'] 61 self.state = kwargs['state'] 62 self.country = kwargs['country'] 63 64 65class ARMBaseModel(msrest.serialization.Model): 66 """Represents the base class for all object models. 67 68 Variables are only populated by the server, and will be ignored when sending a request. 69 70 :ivar id: The path ID that uniquely identifies the object. 71 :vartype id: str 72 :ivar name: The object name. 73 :vartype name: str 74 :ivar type: The hierarchical type of the object. 75 :vartype type: str 76 """ 77 78 _validation = { 79 'id': {'readonly': True}, 80 'name': {'readonly': True}, 81 'type': {'readonly': True}, 82 } 83 84 _attribute_map = { 85 'id': {'key': 'id', 'type': 'str'}, 86 'name': {'key': 'name', 'type': 'str'}, 87 'type': {'key': 'type', 'type': 'str'}, 88 } 89 90 def __init__( 91 self, 92 **kwargs 93 ): 94 super(ARMBaseModel, self).__init__(**kwargs) 95 self.id = None 96 self.name = None 97 self.type = None 98 99 100class Alert(ARMBaseModel): 101 """Alert on the data box edge/gateway device. 102 103 Variables are only populated by the server, and will be ignored when sending a request. 104 105 :ivar id: The path ID that uniquely identifies the object. 106 :vartype id: str 107 :ivar name: The object name. 108 :vartype name: str 109 :ivar type: The hierarchical type of the object. 110 :vartype type: str 111 :ivar title: Alert title. 112 :vartype title: str 113 :ivar alert_type: Alert type. 114 :vartype alert_type: str 115 :ivar appeared_at_date_time: UTC time when the alert appeared. 116 :vartype appeared_at_date_time: ~datetime.datetime 117 :ivar recommendation: Alert recommendation. 118 :vartype recommendation: str 119 :ivar severity: Severity of the alert. Possible values include: "Informational", "Warning", 120 "Critical". 121 :vartype severity: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AlertSeverity 122 :ivar error_details: Error details of the alert. 123 :vartype error_details: ~azure.mgmt.databoxedge.v2019_03_01.models.AlertErrorDetails 124 :ivar detailed_information: Alert details. 125 :vartype detailed_information: dict[str, str] 126 """ 127 128 _validation = { 129 'id': {'readonly': True}, 130 'name': {'readonly': True}, 131 'type': {'readonly': True}, 132 'title': {'readonly': True}, 133 'alert_type': {'readonly': True}, 134 'appeared_at_date_time': {'readonly': True}, 135 'recommendation': {'readonly': True}, 136 'severity': {'readonly': True}, 137 'error_details': {'readonly': True}, 138 'detailed_information': {'readonly': True}, 139 } 140 141 _attribute_map = { 142 'id': {'key': 'id', 'type': 'str'}, 143 'name': {'key': 'name', 'type': 'str'}, 144 'type': {'key': 'type', 'type': 'str'}, 145 'title': {'key': 'properties.title', 'type': 'str'}, 146 'alert_type': {'key': 'properties.alertType', 'type': 'str'}, 147 'appeared_at_date_time': {'key': 'properties.appearedAtDateTime', 'type': 'iso-8601'}, 148 'recommendation': {'key': 'properties.recommendation', 'type': 'str'}, 149 'severity': {'key': 'properties.severity', 'type': 'str'}, 150 'error_details': {'key': 'properties.errorDetails', 'type': 'AlertErrorDetails'}, 151 'detailed_information': {'key': 'properties.detailedInformation', 'type': '{str}'}, 152 } 153 154 def __init__( 155 self, 156 **kwargs 157 ): 158 super(Alert, self).__init__(**kwargs) 159 self.title = None 160 self.alert_type = None 161 self.appeared_at_date_time = None 162 self.recommendation = None 163 self.severity = None 164 self.error_details = None 165 self.detailed_information = None 166 167 168class AlertErrorDetails(msrest.serialization.Model): 169 """Error details for the alert. 170 171 Variables are only populated by the server, and will be ignored when sending a request. 172 173 :ivar error_code: Error code. 174 :vartype error_code: str 175 :ivar error_message: Error Message. 176 :vartype error_message: str 177 :ivar occurrences: Number of occurrences. 178 :vartype occurrences: int 179 """ 180 181 _validation = { 182 'error_code': {'readonly': True}, 183 'error_message': {'readonly': True}, 184 'occurrences': {'readonly': True}, 185 } 186 187 _attribute_map = { 188 'error_code': {'key': 'errorCode', 'type': 'str'}, 189 'error_message': {'key': 'errorMessage', 'type': 'str'}, 190 'occurrences': {'key': 'occurrences', 'type': 'int'}, 191 } 192 193 def __init__( 194 self, 195 **kwargs 196 ): 197 super(AlertErrorDetails, self).__init__(**kwargs) 198 self.error_code = None 199 self.error_message = None 200 self.occurrences = None 201 202 203class AlertList(msrest.serialization.Model): 204 """Collection of alerts. 205 206 Variables are only populated by the server, and will be ignored when sending a request. 207 208 :ivar value: The value. 209 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Alert] 210 :ivar next_link: Link to the next set of results. 211 :vartype next_link: str 212 """ 213 214 _validation = { 215 'value': {'readonly': True}, 216 'next_link': {'readonly': True}, 217 } 218 219 _attribute_map = { 220 'value': {'key': 'value', 'type': '[Alert]'}, 221 'next_link': {'key': 'nextLink', 'type': 'str'}, 222 } 223 224 def __init__( 225 self, 226 **kwargs 227 ): 228 super(AlertList, self).__init__(**kwargs) 229 self.value = None 230 self.next_link = None 231 232 233class AsymmetricEncryptedSecret(msrest.serialization.Model): 234 """Represent the secrets intended for encryption with asymmetric key pair. 235 236 All required parameters must be populated in order to send to Azure. 237 238 :param value: Required. The value of the secret. 239 :type value: str 240 :param encryption_cert_thumbprint: Thumbprint certificate used to encrypt \"Value\". If the 241 value is unencrypted, it will be null. 242 :type encryption_cert_thumbprint: str 243 :param encryption_algorithm: Required. The algorithm used to encrypt "Value". Possible values 244 include: "None", "AES256", "RSAES_PKCS1_v_1_5". 245 :type encryption_algorithm: str or 246 ~azure.mgmt.databoxedge.v2019_03_01.models.EncryptionAlgorithm 247 """ 248 249 _validation = { 250 'value': {'required': True}, 251 'encryption_algorithm': {'required': True}, 252 } 253 254 _attribute_map = { 255 'value': {'key': 'value', 'type': 'str'}, 256 'encryption_cert_thumbprint': {'key': 'encryptionCertThumbprint', 'type': 'str'}, 257 'encryption_algorithm': {'key': 'encryptionAlgorithm', 'type': 'str'}, 258 } 259 260 def __init__( 261 self, 262 **kwargs 263 ): 264 super(AsymmetricEncryptedSecret, self).__init__(**kwargs) 265 self.value = kwargs['value'] 266 self.encryption_cert_thumbprint = kwargs.get('encryption_cert_thumbprint', None) 267 self.encryption_algorithm = kwargs['encryption_algorithm'] 268 269 270class Authentication(msrest.serialization.Model): 271 """Authentication mechanism for IoT devices. 272 273 :param symmetric_key: Symmetric key for authentication. 274 :type symmetric_key: ~azure.mgmt.databoxedge.v2019_03_01.models.SymmetricKey 275 """ 276 277 _attribute_map = { 278 'symmetric_key': {'key': 'symmetricKey', 'type': 'SymmetricKey'}, 279 } 280 281 def __init__( 282 self, 283 **kwargs 284 ): 285 super(Authentication, self).__init__(**kwargs) 286 self.symmetric_key = kwargs.get('symmetric_key', None) 287 288 289class AzureContainerInfo(msrest.serialization.Model): 290 """Azure container mapping of the endpoint. 291 292 All required parameters must be populated in order to send to Azure. 293 294 :param storage_account_credential_id: Required. ID of the storage account credential used to 295 access storage. 296 :type storage_account_credential_id: str 297 :param container_name: Required. Container name (Based on the data format specified, this 298 represents the name of Azure Files/Page blob/Block blob). 299 :type container_name: str 300 :param data_format: Required. Storage format used for the file represented by the share. 301 Possible values include: "BlockBlob", "PageBlob", "AzureFile". 302 :type data_format: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AzureContainerDataFormat 303 """ 304 305 _validation = { 306 'storage_account_credential_id': {'required': True}, 307 'container_name': {'required': True}, 308 'data_format': {'required': True}, 309 } 310 311 _attribute_map = { 312 'storage_account_credential_id': {'key': 'storageAccountCredentialId', 'type': 'str'}, 313 'container_name': {'key': 'containerName', 'type': 'str'}, 314 'data_format': {'key': 'dataFormat', 'type': 'str'}, 315 } 316 317 def __init__( 318 self, 319 **kwargs 320 ): 321 super(AzureContainerInfo, self).__init__(**kwargs) 322 self.storage_account_credential_id = kwargs['storage_account_credential_id'] 323 self.container_name = kwargs['container_name'] 324 self.data_format = kwargs['data_format'] 325 326 327class BandwidthSchedule(ARMBaseModel): 328 """The bandwidth schedule details. 329 330 Variables are only populated by the server, and will be ignored when sending a request. 331 332 All required parameters must be populated in order to send to Azure. 333 334 :ivar id: The path ID that uniquely identifies the object. 335 :vartype id: str 336 :ivar name: The object name. 337 :vartype name: str 338 :ivar type: The hierarchical type of the object. 339 :vartype type: str 340 :param start: Required. The start time of the schedule in UTC. 341 :type start: str 342 :param stop: Required. The stop time of the schedule in UTC. 343 :type stop: str 344 :param rate_in_mbps: Required. The bandwidth rate in Mbps. 345 :type rate_in_mbps: int 346 :param days: Required. The days of the week when this schedule is applicable. 347 :type days: list[str or ~azure.mgmt.databoxedge.v2019_03_01.models.DayOfWeek] 348 """ 349 350 _validation = { 351 'id': {'readonly': True}, 352 'name': {'readonly': True}, 353 'type': {'readonly': True}, 354 'start': {'required': True}, 355 'stop': {'required': True}, 356 'rate_in_mbps': {'required': True}, 357 'days': {'required': True}, 358 } 359 360 _attribute_map = { 361 'id': {'key': 'id', 'type': 'str'}, 362 'name': {'key': 'name', 'type': 'str'}, 363 'type': {'key': 'type', 'type': 'str'}, 364 'start': {'key': 'properties.start', 'type': 'str'}, 365 'stop': {'key': 'properties.stop', 'type': 'str'}, 366 'rate_in_mbps': {'key': 'properties.rateInMbps', 'type': 'int'}, 367 'days': {'key': 'properties.days', 'type': '[str]'}, 368 } 369 370 def __init__( 371 self, 372 **kwargs 373 ): 374 super(BandwidthSchedule, self).__init__(**kwargs) 375 self.start = kwargs['start'] 376 self.stop = kwargs['stop'] 377 self.rate_in_mbps = kwargs['rate_in_mbps'] 378 self.days = kwargs['days'] 379 380 381class BandwidthSchedulesList(msrest.serialization.Model): 382 """The collection of bandwidth schedules. 383 384 Variables are only populated by the server, and will be ignored when sending a request. 385 386 :ivar value: The list of bandwidth schedules. 387 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.BandwidthSchedule] 388 :ivar next_link: Link to the next set of results. 389 :vartype next_link: str 390 """ 391 392 _validation = { 393 'value': {'readonly': True}, 394 'next_link': {'readonly': True}, 395 } 396 397 _attribute_map = { 398 'value': {'key': 'value', 'type': '[BandwidthSchedule]'}, 399 'next_link': {'key': 'nextLink', 'type': 'str'}, 400 } 401 402 def __init__( 403 self, 404 **kwargs 405 ): 406 super(BandwidthSchedulesList, self).__init__(**kwargs) 407 self.value = None 408 self.next_link = None 409 410 411class ClientAccessRight(msrest.serialization.Model): 412 """The mapping between a particular client IP and the type of access client has on the NFS share. 413 414 All required parameters must be populated in order to send to Azure. 415 416 :param client: Required. IP of the client. 417 :type client: str 418 :param access_permission: Required. Type of access to be allowed for the client. Possible 419 values include: "NoAccess", "ReadOnly", "ReadWrite". 420 :type access_permission: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ClientPermissionType 421 """ 422 423 _validation = { 424 'client': {'required': True}, 425 'access_permission': {'required': True}, 426 } 427 428 _attribute_map = { 429 'client': {'key': 'client', 'type': 'str'}, 430 'access_permission': {'key': 'accessPermission', 'type': 'str'}, 431 } 432 433 def __init__( 434 self, 435 **kwargs 436 ): 437 super(ClientAccessRight, self).__init__(**kwargs) 438 self.client = kwargs['client'] 439 self.access_permission = kwargs['access_permission'] 440 441 442class CloudErrorBody(msrest.serialization.Model): 443 """An error response from the service. 444 445 :param code: An identifier for the error. Codes are invariant and are intended to be consumed 446 programmatically. 447 :type code: str 448 :param message: A message describing the error, intended to be suitable for display in a user 449 interface. 450 :type message: str 451 :param details: A list of additional details about the error. 452 :type details: list[~azure.mgmt.databoxedge.v2019_03_01.models.CloudErrorBody] 453 """ 454 455 _attribute_map = { 456 'code': {'key': 'code', 'type': 'str'}, 457 'message': {'key': 'message', 'type': 'str'}, 458 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, 459 } 460 461 def __init__( 462 self, 463 **kwargs 464 ): 465 super(CloudErrorBody, self).__init__(**kwargs) 466 self.code = kwargs.get('code', None) 467 self.message = kwargs.get('message', None) 468 self.details = kwargs.get('details', None) 469 470 471class ContactDetails(msrest.serialization.Model): 472 """Contains all the contact details of the customer. 473 474 All required parameters must be populated in order to send to Azure. 475 476 :param contact_person: Required. The contact person name. 477 :type contact_person: str 478 :param company_name: Required. The name of the company. 479 :type company_name: str 480 :param phone: Required. The phone number. 481 :type phone: str 482 :param email_list: Required. The email list. 483 :type email_list: list[str] 484 """ 485 486 _validation = { 487 'contact_person': {'required': True}, 488 'company_name': {'required': True}, 489 'phone': {'required': True}, 490 'email_list': {'required': True}, 491 } 492 493 _attribute_map = { 494 'contact_person': {'key': 'contactPerson', 'type': 'str'}, 495 'company_name': {'key': 'companyName', 'type': 'str'}, 496 'phone': {'key': 'phone', 'type': 'str'}, 497 'email_list': {'key': 'emailList', 'type': '[str]'}, 498 } 499 500 def __init__( 501 self, 502 **kwargs 503 ): 504 super(ContactDetails, self).__init__(**kwargs) 505 self.contact_person = kwargs['contact_person'] 506 self.company_name = kwargs['company_name'] 507 self.phone = kwargs['phone'] 508 self.email_list = kwargs['email_list'] 509 510 511class DataBoxEdgeDevice(ARMBaseModel): 512 """The Data Box Edge/Gateway device. 513 514 Variables are only populated by the server, and will be ignored when sending a request. 515 516 All required parameters must be populated in order to send to Azure. 517 518 :ivar id: The path ID that uniquely identifies the object. 519 :vartype id: str 520 :ivar name: The object name. 521 :vartype name: str 522 :ivar type: The hierarchical type of the object. 523 :vartype type: str 524 :param location: Required. The location of the device. This is a supported and registered Azure 525 geographical region (for example, West US, East US, or Southeast Asia). The geographical region 526 of a device cannot be changed once it is created, but if an identical geographical region is 527 specified on update, the request will succeed. 528 :type location: str 529 :param tags: A set of tags. The list of tags that describe the device. These tags can be used 530 to view and group this device (across resource groups). 531 :type tags: dict[str, str] 532 :param sku: The SKU type. 533 :type sku: ~azure.mgmt.databoxedge.v2019_03_01.models.Sku 534 :param etag: The etag for the devices. 535 :type etag: str 536 :param data_box_edge_device_status: The status of the Data Box Edge/Gateway device. Possible 537 values include: "ReadyToSetup", "Online", "Offline", "NeedsAttention", "Disconnected", 538 "PartiallyDisconnected". 539 :type data_box_edge_device_status: str or 540 ~azure.mgmt.databoxedge.v2019_03_01.models.DataBoxEdgeDeviceStatus 541 :ivar serial_number: The Serial Number of Data Box Edge/Gateway device. 542 :vartype serial_number: str 543 :param description: The Description of the Data Box Edge/Gateway device. 544 :type description: str 545 :param model_description: The description of the Data Box Edge/Gateway device model. 546 :type model_description: str 547 :ivar device_type: The type of the Data Box Edge/Gateway device. Possible values include: 548 "DataBoxEdgeDevice". 549 :vartype device_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DeviceType 550 :param friendly_name: The Data Box Edge/Gateway device name. 551 :type friendly_name: str 552 :ivar culture: The Data Box Edge/Gateway device culture. 553 :vartype culture: str 554 :ivar device_model: The Data Box Edge/Gateway device model. 555 :vartype device_model: str 556 :ivar device_software_version: The Data Box Edge/Gateway device software version. 557 :vartype device_software_version: str 558 :ivar device_local_capacity: The Data Box Edge/Gateway device local capacity in MB. 559 :vartype device_local_capacity: long 560 :ivar time_zone: The Data Box Edge/Gateway device timezone. 561 :vartype time_zone: str 562 :ivar device_hcs_version: The device software version number of the device (eg: 1.2.18105.6). 563 :vartype device_hcs_version: str 564 :ivar configured_role_types: Type of compute roles configured. 565 :vartype configured_role_types: list[str or 566 ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes] 567 """ 568 569 _validation = { 570 'id': {'readonly': True}, 571 'name': {'readonly': True}, 572 'type': {'readonly': True}, 573 'location': {'required': True}, 574 'serial_number': {'readonly': True}, 575 'device_type': {'readonly': True}, 576 'culture': {'readonly': True}, 577 'device_model': {'readonly': True}, 578 'device_software_version': {'readonly': True}, 579 'device_local_capacity': {'readonly': True}, 580 'time_zone': {'readonly': True}, 581 'device_hcs_version': {'readonly': True}, 582 'configured_role_types': {'readonly': True}, 583 } 584 585 _attribute_map = { 586 'id': {'key': 'id', 'type': 'str'}, 587 'name': {'key': 'name', 'type': 'str'}, 588 'type': {'key': 'type', 'type': 'str'}, 589 'location': {'key': 'location', 'type': 'str'}, 590 'tags': {'key': 'tags', 'type': '{str}'}, 591 'sku': {'key': 'sku', 'type': 'Sku'}, 592 'etag': {'key': 'etag', 'type': 'str'}, 593 'data_box_edge_device_status': {'key': 'properties.dataBoxEdgeDeviceStatus', 'type': 'str'}, 594 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 595 'description': {'key': 'properties.description', 'type': 'str'}, 596 'model_description': {'key': 'properties.modelDescription', 'type': 'str'}, 597 'device_type': {'key': 'properties.deviceType', 'type': 'str'}, 598 'friendly_name': {'key': 'properties.friendlyName', 'type': 'str'}, 599 'culture': {'key': 'properties.culture', 'type': 'str'}, 600 'device_model': {'key': 'properties.deviceModel', 'type': 'str'}, 601 'device_software_version': {'key': 'properties.deviceSoftwareVersion', 'type': 'str'}, 602 'device_local_capacity': {'key': 'properties.deviceLocalCapacity', 'type': 'long'}, 603 'time_zone': {'key': 'properties.timeZone', 'type': 'str'}, 604 'device_hcs_version': {'key': 'properties.deviceHcsVersion', 'type': 'str'}, 605 'configured_role_types': {'key': 'properties.configuredRoleTypes', 'type': '[str]'}, 606 } 607 608 def __init__( 609 self, 610 **kwargs 611 ): 612 super(DataBoxEdgeDevice, self).__init__(**kwargs) 613 self.location = kwargs['location'] 614 self.tags = kwargs.get('tags', None) 615 self.sku = kwargs.get('sku', None) 616 self.etag = kwargs.get('etag', None) 617 self.data_box_edge_device_status = kwargs.get('data_box_edge_device_status', None) 618 self.serial_number = None 619 self.description = kwargs.get('description', None) 620 self.model_description = kwargs.get('model_description', None) 621 self.device_type = None 622 self.friendly_name = kwargs.get('friendly_name', None) 623 self.culture = None 624 self.device_model = None 625 self.device_software_version = None 626 self.device_local_capacity = None 627 self.time_zone = None 628 self.device_hcs_version = None 629 self.configured_role_types = None 630 631 632class DataBoxEdgeDeviceExtendedInfo(ARMBaseModel): 633 """The extended Info of the Data Box Edge/Gateway device. 634 635 Variables are only populated by the server, and will be ignored when sending a request. 636 637 :ivar id: The path ID that uniquely identifies the object. 638 :vartype id: str 639 :ivar name: The object name. 640 :vartype name: str 641 :ivar type: The hierarchical type of the object. 642 :vartype type: str 643 :param encryption_key_thumbprint: The digital signature of encrypted certificate. 644 :type encryption_key_thumbprint: str 645 :param encryption_key: The public part of the encryption certificate. Client uses this to 646 encrypt any secret. 647 :type encryption_key: str 648 :ivar resource_key: The Resource ID of the Resource. 649 :vartype resource_key: str 650 """ 651 652 _validation = { 653 'id': {'readonly': True}, 654 'name': {'readonly': True}, 655 'type': {'readonly': True}, 656 'resource_key': {'readonly': True}, 657 } 658 659 _attribute_map = { 660 'id': {'key': 'id', 'type': 'str'}, 661 'name': {'key': 'name', 'type': 'str'}, 662 'type': {'key': 'type', 'type': 'str'}, 663 'encryption_key_thumbprint': {'key': 'properties.encryptionKeyThumbprint', 'type': 'str'}, 664 'encryption_key': {'key': 'properties.encryptionKey', 'type': 'str'}, 665 'resource_key': {'key': 'properties.resourceKey', 'type': 'str'}, 666 } 667 668 def __init__( 669 self, 670 **kwargs 671 ): 672 super(DataBoxEdgeDeviceExtendedInfo, self).__init__(**kwargs) 673 self.encryption_key_thumbprint = kwargs.get('encryption_key_thumbprint', None) 674 self.encryption_key = kwargs.get('encryption_key', None) 675 self.resource_key = None 676 677 678class DataBoxEdgeDeviceList(msrest.serialization.Model): 679 """The collection of Data Box Edge/Gateway devices. 680 681 Variables are only populated by the server, and will be ignored when sending a request. 682 683 :ivar value: The list of Data Box Edge/Gateway devices. 684 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.DataBoxEdgeDevice] 685 :ivar next_link: Link to the next set of results. 686 :vartype next_link: str 687 """ 688 689 _validation = { 690 'value': {'readonly': True}, 691 'next_link': {'readonly': True}, 692 } 693 694 _attribute_map = { 695 'value': {'key': 'value', 'type': '[DataBoxEdgeDevice]'}, 696 'next_link': {'key': 'nextLink', 'type': 'str'}, 697 } 698 699 def __init__( 700 self, 701 **kwargs 702 ): 703 super(DataBoxEdgeDeviceList, self).__init__(**kwargs) 704 self.value = None 705 self.next_link = None 706 707 708class DataBoxEdgeDevicePatch(msrest.serialization.Model): 709 """The Data Box Edge/Gateway device patch. 710 711 :param tags: A set of tags. The tags attached to the Data Box Edge/Gateway resource. 712 :type tags: dict[str, str] 713 """ 714 715 _attribute_map = { 716 'tags': {'key': 'tags', 'type': '{str}'}, 717 } 718 719 def __init__( 720 self, 721 **kwargs 722 ): 723 super(DataBoxEdgeDevicePatch, self).__init__(**kwargs) 724 self.tags = kwargs.get('tags', None) 725 726 727class Trigger(ARMBaseModel): 728 """Trigger details. 729 730 You probably want to use the sub-classes and not this class directly. Known 731 sub-classes are: FileEventTrigger, PeriodicTimerEventTrigger. 732 733 Variables are only populated by the server, and will be ignored when sending a request. 734 735 All required parameters must be populated in order to send to Azure. 736 737 :ivar id: The path ID that uniquely identifies the object. 738 :vartype id: str 739 :ivar name: The object name. 740 :vartype name: str 741 :ivar type: The hierarchical type of the object. 742 :vartype type: str 743 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 744 "FileEvent", "PeriodicTimerEvent". 745 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 746 """ 747 748 _validation = { 749 'id': {'readonly': True}, 750 'name': {'readonly': True}, 751 'type': {'readonly': True}, 752 'kind': {'required': True}, 753 } 754 755 _attribute_map = { 756 'id': {'key': 'id', 'type': 'str'}, 757 'name': {'key': 'name', 'type': 'str'}, 758 'type': {'key': 'type', 'type': 'str'}, 759 'kind': {'key': 'kind', 'type': 'str'}, 760 } 761 762 _subtype_map = { 763 'kind': {'FileEvent': 'FileEventTrigger', 'PeriodicTimerEvent': 'PeriodicTimerEventTrigger'} 764 } 765 766 def __init__( 767 self, 768 **kwargs 769 ): 770 super(Trigger, self).__init__(**kwargs) 771 self.kind = 'Trigger' # type: str 772 773 774class FileEventTrigger(Trigger): 775 """Trigger details. 776 777 Variables are only populated by the server, and will be ignored when sending a request. 778 779 All required parameters must be populated in order to send to Azure. 780 781 :ivar id: The path ID that uniquely identifies the object. 782 :vartype id: str 783 :ivar name: The object name. 784 :vartype name: str 785 :ivar type: The hierarchical type of the object. 786 :vartype type: str 787 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 788 "FileEvent", "PeriodicTimerEvent". 789 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 790 :param source_info: Required. File event source details. 791 :type source_info: ~azure.mgmt.databoxedge.v2019_03_01.models.FileSourceInfo 792 :param sink_info: Required. Role sink info. 793 :type sink_info: ~azure.mgmt.databoxedge.v2019_03_01.models.RoleSinkInfo 794 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 795 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 796 modules in the device, the tag can be the name or the image URL of the module. 797 :type custom_context_tag: str 798 """ 799 800 _validation = { 801 'id': {'readonly': True}, 802 'name': {'readonly': True}, 803 'type': {'readonly': True}, 804 'kind': {'required': True}, 805 'source_info': {'required': True}, 806 'sink_info': {'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 'source_info': {'key': 'properties.sourceInfo', 'type': 'FileSourceInfo'}, 815 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 816 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 817 } 818 819 def __init__( 820 self, 821 **kwargs 822 ): 823 super(FileEventTrigger, self).__init__(**kwargs) 824 self.kind = 'FileEvent' # type: str 825 self.source_info = kwargs['source_info'] 826 self.sink_info = kwargs['sink_info'] 827 self.custom_context_tag = kwargs.get('custom_context_tag', None) 828 829 830class FileSourceInfo(msrest.serialization.Model): 831 """File source details. 832 833 All required parameters must be populated in order to send to Azure. 834 835 :param share_id: Required. File share ID. 836 :type share_id: str 837 """ 838 839 _validation = { 840 'share_id': {'required': True}, 841 } 842 843 _attribute_map = { 844 'share_id': {'key': 'shareId', 'type': 'str'}, 845 } 846 847 def __init__( 848 self, 849 **kwargs 850 ): 851 super(FileSourceInfo, self).__init__(**kwargs) 852 self.share_id = kwargs['share_id'] 853 854 855class IoTDeviceInfo(msrest.serialization.Model): 856 """Metadata of IoT device/IoT Edge device to be configured. 857 858 All required parameters must be populated in order to send to Azure. 859 860 :param device_id: Required. ID of the IoT device/edge device. 861 :type device_id: str 862 :param io_t_host_hub: Required. Host name for the IoT hub associated to the device. 863 :type io_t_host_hub: str 864 :param authentication: IoT device authentication info. 865 :type authentication: ~azure.mgmt.databoxedge.v2019_03_01.models.Authentication 866 """ 867 868 _validation = { 869 'device_id': {'required': True}, 870 'io_t_host_hub': {'required': True}, 871 } 872 873 _attribute_map = { 874 'device_id': {'key': 'deviceId', 'type': 'str'}, 875 'io_t_host_hub': {'key': 'ioTHostHub', 'type': 'str'}, 876 'authentication': {'key': 'authentication', 'type': 'Authentication'}, 877 } 878 879 def __init__( 880 self, 881 **kwargs 882 ): 883 super(IoTDeviceInfo, self).__init__(**kwargs) 884 self.device_id = kwargs['device_id'] 885 self.io_t_host_hub = kwargs['io_t_host_hub'] 886 self.authentication = kwargs.get('authentication', None) 887 888 889class Role(ARMBaseModel): 890 """Compute role. 891 892 You probably want to use the sub-classes and not this class directly. Known 893 sub-classes are: IoTRole. 894 895 Variables are only populated by the server, and will be ignored when sending a request. 896 897 All required parameters must be populated in order to send to Azure. 898 899 :ivar id: The path ID that uniquely identifies the object. 900 :vartype id: str 901 :ivar name: The object name. 902 :vartype name: str 903 :ivar type: The hierarchical type of the object. 904 :vartype type: str 905 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 906 "ASA", "Functions", "Cognitive". 907 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 908 """ 909 910 _validation = { 911 'id': {'readonly': True}, 912 'name': {'readonly': True}, 913 'type': {'readonly': True}, 914 'kind': {'required': True}, 915 } 916 917 _attribute_map = { 918 'id': {'key': 'id', 'type': 'str'}, 919 'name': {'key': 'name', 'type': 'str'}, 920 'type': {'key': 'type', 'type': 'str'}, 921 'kind': {'key': 'kind', 'type': 'str'}, 922 } 923 924 _subtype_map = { 925 'kind': {'IOT': 'IoTRole'} 926 } 927 928 def __init__( 929 self, 930 **kwargs 931 ): 932 super(Role, self).__init__(**kwargs) 933 self.kind = 'Role' # type: str 934 935 936class IoTRole(Role): 937 """Compute role. 938 939 Variables are only populated by the server, and will be ignored when sending a request. 940 941 All required parameters must be populated in order to send to Azure. 942 943 :ivar id: The path ID that uniquely identifies the object. 944 :vartype id: str 945 :ivar name: The object name. 946 :vartype name: str 947 :ivar type: The hierarchical type of the object. 948 :vartype type: str 949 :param kind: Required. Role type.Constant filled by server. Possible values include: "IOT", 950 "ASA", "Functions", "Cognitive". 951 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 952 :param host_platform: Host OS supported by the IoT role. Possible values include: "Windows", 953 "Linux". 954 :type host_platform: str or ~azure.mgmt.databoxedge.v2019_03_01.models.PlatformType 955 :param io_t_device_details: IoT device metadata to which data box edge device needs to be 956 connected. 957 :type io_t_device_details: ~azure.mgmt.databoxedge.v2019_03_01.models.IoTDeviceInfo 958 :param io_t_edge_device_details: IoT edge device to which the IoT role needs to be configured. 959 :type io_t_edge_device_details: ~azure.mgmt.databoxedge.v2019_03_01.models.IoTDeviceInfo 960 :param share_mappings: Mount points of shares in role(s). 961 :type share_mappings: list[~azure.mgmt.databoxedge.v2019_03_01.models.MountPointMap] 962 :param role_status: Role status. Possible values include: "Enabled", "Disabled". 963 :type role_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleStatus 964 """ 965 966 _validation = { 967 'id': {'readonly': True}, 968 'name': {'readonly': True}, 969 'type': {'readonly': True}, 970 'kind': {'required': True}, 971 } 972 973 _attribute_map = { 974 'id': {'key': 'id', 'type': 'str'}, 975 'name': {'key': 'name', 'type': 'str'}, 976 'type': {'key': 'type', 'type': 'str'}, 977 'kind': {'key': 'kind', 'type': 'str'}, 978 'host_platform': {'key': 'properties.hostPlatform', 'type': 'str'}, 979 'io_t_device_details': {'key': 'properties.ioTDeviceDetails', 'type': 'IoTDeviceInfo'}, 980 'io_t_edge_device_details': {'key': 'properties.ioTEdgeDeviceDetails', 'type': 'IoTDeviceInfo'}, 981 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 982 'role_status': {'key': 'properties.roleStatus', 'type': 'str'}, 983 } 984 985 def __init__( 986 self, 987 **kwargs 988 ): 989 super(IoTRole, self).__init__(**kwargs) 990 self.kind = 'IOT' # type: str 991 self.host_platform = kwargs.get('host_platform', None) 992 self.io_t_device_details = kwargs.get('io_t_device_details', None) 993 self.io_t_edge_device_details = kwargs.get('io_t_edge_device_details', None) 994 self.share_mappings = kwargs.get('share_mappings', None) 995 self.role_status = kwargs.get('role_status', None) 996 997 998class Ipv4Config(msrest.serialization.Model): 999 """Details related to the IPv4 address configuration. 1000 1001 Variables are only populated by the server, and will be ignored when sending a request. 1002 1003 :ivar ip_address: The IPv4 address of the network adapter. 1004 :vartype ip_address: str 1005 :ivar subnet: The IPv4 subnet of the network adapter. 1006 :vartype subnet: str 1007 :ivar gateway: The IPv4 gateway of the network adapter. 1008 :vartype gateway: str 1009 """ 1010 1011 _validation = { 1012 'ip_address': {'readonly': True}, 1013 'subnet': {'readonly': True}, 1014 'gateway': {'readonly': True}, 1015 } 1016 1017 _attribute_map = { 1018 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1019 'subnet': {'key': 'subnet', 'type': 'str'}, 1020 'gateway': {'key': 'gateway', 'type': 'str'}, 1021 } 1022 1023 def __init__( 1024 self, 1025 **kwargs 1026 ): 1027 super(Ipv4Config, self).__init__(**kwargs) 1028 self.ip_address = None 1029 self.subnet = None 1030 self.gateway = None 1031 1032 1033class Ipv6Config(msrest.serialization.Model): 1034 """Details related to the IPv6 address configuration. 1035 1036 Variables are only populated by the server, and will be ignored when sending a request. 1037 1038 :ivar ip_address: The IPv6 address of the network adapter. 1039 :vartype ip_address: str 1040 :ivar prefix_length: The IPv6 prefix of the network adapter. 1041 :vartype prefix_length: int 1042 :ivar gateway: The IPv6 gateway of the network adapter. 1043 :vartype gateway: str 1044 """ 1045 1046 _validation = { 1047 'ip_address': {'readonly': True}, 1048 'prefix_length': {'readonly': True}, 1049 'gateway': {'readonly': True}, 1050 } 1051 1052 _attribute_map = { 1053 'ip_address': {'key': 'ipAddress', 'type': 'str'}, 1054 'prefix_length': {'key': 'prefixLength', 'type': 'int'}, 1055 'gateway': {'key': 'gateway', 'type': 'str'}, 1056 } 1057 1058 def __init__( 1059 self, 1060 **kwargs 1061 ): 1062 super(Ipv6Config, self).__init__(**kwargs) 1063 self.ip_address = None 1064 self.prefix_length = None 1065 self.gateway = None 1066 1067 1068class Job(msrest.serialization.Model): 1069 """A device job. 1070 1071 Variables are only populated by the server, and will be ignored when sending a request. 1072 1073 :ivar id: The path ID that uniquely identifies the object. 1074 :vartype id: str 1075 :ivar name: The name of the object. 1076 :vartype name: str 1077 :ivar type: The hierarchical type of the object. 1078 :vartype type: str 1079 :ivar status: The current status of the job. Possible values include: "Invalid", "Running", 1080 "Succeeded", "Failed", "Canceled", "Paused", "Scheduled". 1081 :vartype status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.JobStatus 1082 :ivar start_time: The UTC date and time at which the job started. 1083 :vartype start_time: ~datetime.datetime 1084 :ivar end_time: The UTC date and time at which the job completed. 1085 :vartype end_time: ~datetime.datetime 1086 :ivar percent_complete: The percentage of the job that is complete. 1087 :vartype percent_complete: int 1088 :ivar error: The error details. 1089 :vartype error: ~azure.mgmt.databoxedge.v2019_03_01.models.JobErrorDetails 1090 :ivar job_type: The type of the job. Possible values include: "Invalid", "ScanForUpdates", 1091 "DownloadUpdates", "InstallUpdates", "RefreshShare". 1092 :vartype job_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.JobType 1093 :ivar current_stage: Current stage of the update operation. Possible values include: "Unknown", 1094 "Initial", "ScanStarted", "ScanComplete", "ScanFailed", "DownloadStarted", "DownloadComplete", 1095 "DownloadFailed", "InstallStarted", "InstallComplete", "InstallFailed", "RebootInitiated", 1096 "Success", "Failure", "RescanStarted", "RescanComplete", "RescanFailed". 1097 :vartype current_stage: str or ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateOperationStage 1098 :ivar download_progress: The download progress. 1099 :vartype download_progress: ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateDownloadProgress 1100 :ivar install_progress: The install progress. 1101 :vartype install_progress: ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateInstallProgress 1102 :ivar total_refresh_errors: Total number of errors encountered during the refresh process. 1103 :vartype total_refresh_errors: int 1104 :ivar error_manifest_file: Local share/remote container relative path to the error manifest 1105 file of the refresh. 1106 :vartype error_manifest_file: str 1107 :ivar share_id: ARM ID of the share that was refreshed. 1108 :vartype share_id: str 1109 :param folder: If only subfolders need to be refreshed, then the subfolder path inside the 1110 share. (The path is empty if there are no subfolders.). 1111 :type folder: str 1112 """ 1113 1114 _validation = { 1115 'id': {'readonly': True}, 1116 'name': {'readonly': True}, 1117 'type': {'readonly': True}, 1118 'status': {'readonly': True}, 1119 'start_time': {'readonly': True}, 1120 'end_time': {'readonly': True}, 1121 'percent_complete': {'readonly': True}, 1122 'error': {'readonly': True}, 1123 'job_type': {'readonly': True}, 1124 'current_stage': {'readonly': True}, 1125 'download_progress': {'readonly': True}, 1126 'install_progress': {'readonly': True}, 1127 'total_refresh_errors': {'readonly': True}, 1128 'error_manifest_file': {'readonly': True}, 1129 'share_id': {'readonly': True}, 1130 } 1131 1132 _attribute_map = { 1133 'id': {'key': 'id', 'type': 'str'}, 1134 'name': {'key': 'name', 'type': 'str'}, 1135 'type': {'key': 'type', 'type': 'str'}, 1136 'status': {'key': 'status', 'type': 'str'}, 1137 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 1138 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 1139 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 1140 'error': {'key': 'error', 'type': 'JobErrorDetails'}, 1141 'job_type': {'key': 'properties.jobType', 'type': 'str'}, 1142 'current_stage': {'key': 'properties.currentStage', 'type': 'str'}, 1143 'download_progress': {'key': 'properties.downloadProgress', 'type': 'UpdateDownloadProgress'}, 1144 'install_progress': {'key': 'properties.installProgress', 'type': 'UpdateInstallProgress'}, 1145 'total_refresh_errors': {'key': 'properties.totalRefreshErrors', 'type': 'int'}, 1146 'error_manifest_file': {'key': 'properties.errorManifestFile', 'type': 'str'}, 1147 'share_id': {'key': 'properties.shareId', 'type': 'str'}, 1148 'folder': {'key': 'properties.folder', 'type': 'str'}, 1149 } 1150 1151 def __init__( 1152 self, 1153 **kwargs 1154 ): 1155 super(Job, self).__init__(**kwargs) 1156 self.id = None 1157 self.name = None 1158 self.type = None 1159 self.status = None 1160 self.start_time = None 1161 self.end_time = None 1162 self.percent_complete = None 1163 self.error = None 1164 self.job_type = None 1165 self.current_stage = None 1166 self.download_progress = None 1167 self.install_progress = None 1168 self.total_refresh_errors = None 1169 self.error_manifest_file = None 1170 self.share_id = None 1171 self.folder = kwargs.get('folder', None) 1172 1173 1174class JobErrorDetails(msrest.serialization.Model): 1175 """The job error information containing the list of job errors. 1176 1177 Variables are only populated by the server, and will be ignored when sending a request. 1178 1179 :ivar error_details: The error details. 1180 :vartype error_details: list[~azure.mgmt.databoxedge.v2019_03_01.models.JobErrorItem] 1181 :ivar code: The code intended for programmatic access. 1182 :vartype code: str 1183 :ivar message: The message that describes the error in detail. 1184 :vartype message: str 1185 """ 1186 1187 _validation = { 1188 'error_details': {'readonly': True}, 1189 'code': {'readonly': True}, 1190 'message': {'readonly': True}, 1191 } 1192 1193 _attribute_map = { 1194 'error_details': {'key': 'errorDetails', 'type': '[JobErrorItem]'}, 1195 'code': {'key': 'code', 'type': 'str'}, 1196 'message': {'key': 'message', 'type': 'str'}, 1197 } 1198 1199 def __init__( 1200 self, 1201 **kwargs 1202 ): 1203 super(JobErrorDetails, self).__init__(**kwargs) 1204 self.error_details = None 1205 self.code = None 1206 self.message = None 1207 1208 1209class JobErrorItem(msrest.serialization.Model): 1210 """The job error items. 1211 1212 Variables are only populated by the server, and will be ignored when sending a request. 1213 1214 :ivar recommendations: The recommended actions. 1215 :vartype recommendations: list[str] 1216 :ivar code: The code intended for programmatic access. 1217 :vartype code: str 1218 :ivar message: The message that describes the error in detail. 1219 :vartype message: str 1220 """ 1221 1222 _validation = { 1223 'recommendations': {'readonly': True}, 1224 'code': {'readonly': True}, 1225 'message': {'readonly': True}, 1226 } 1227 1228 _attribute_map = { 1229 'recommendations': {'key': 'recommendations', 'type': '[str]'}, 1230 'code': {'key': 'code', 'type': 'str'}, 1231 'message': {'key': 'message', 'type': 'str'}, 1232 } 1233 1234 def __init__( 1235 self, 1236 **kwargs 1237 ): 1238 super(JobErrorItem, self).__init__(**kwargs) 1239 self.recommendations = None 1240 self.code = None 1241 self.message = None 1242 1243 1244class MetricDimensionV1(msrest.serialization.Model): 1245 """Metric Dimension v1. 1246 1247 :param name: Name of the metrics dimension. 1248 :type name: str 1249 :param display_name: Display name of the metrics dimension. 1250 :type display_name: str 1251 :param to_be_exported_for_shoebox: To be exported to shoe box. 1252 :type to_be_exported_for_shoebox: bool 1253 """ 1254 1255 _attribute_map = { 1256 'name': {'key': 'name', 'type': 'str'}, 1257 'display_name': {'key': 'displayName', 'type': 'str'}, 1258 'to_be_exported_for_shoebox': {'key': 'toBeExportedForShoebox', 'type': 'bool'}, 1259 } 1260 1261 def __init__( 1262 self, 1263 **kwargs 1264 ): 1265 super(MetricDimensionV1, self).__init__(**kwargs) 1266 self.name = kwargs.get('name', None) 1267 self.display_name = kwargs.get('display_name', None) 1268 self.to_be_exported_for_shoebox = kwargs.get('to_be_exported_for_shoebox', None) 1269 1270 1271class MetricSpecificationV1(msrest.serialization.Model): 1272 """Metric specification version 1. 1273 1274 :param name: Name of the metric. 1275 :type name: str 1276 :param display_name: Display name of the metric. 1277 :type display_name: str 1278 :param display_description: Description of the metric to be displayed. 1279 :type display_description: str 1280 :param unit: Metric units. Possible values include: "NotSpecified", "Percent", "Count", 1281 "Seconds", "Milliseconds", "Bytes", "BytesPerSecond", "CountPerSecond". 1282 :type unit: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricUnit 1283 :param aggregation_type: Metric aggregation type. Possible values include: "NotSpecified", 1284 "None", "Average", "Minimum", "Maximum", "Total", "Count". 1285 :type aggregation_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricAggregationType 1286 :param dimensions: Metric dimensions, other than default dimension which is resource. 1287 :type dimensions: list[~azure.mgmt.databoxedge.v2019_03_01.models.MetricDimensionV1] 1288 :param fill_gap_with_zero: Set true to fill the gaps with zero. 1289 :type fill_gap_with_zero: bool 1290 :param category: Metric category. Possible values include: "Capacity", "Transaction". 1291 :type category: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MetricCategory 1292 :param resource_id_dimension_name_override: Resource name override. 1293 :type resource_id_dimension_name_override: str 1294 :param supported_time_grain_types: Support granularity of metrics. 1295 :type supported_time_grain_types: list[str or 1296 ~azure.mgmt.databoxedge.v2019_03_01.models.TimeGrain] 1297 :param supported_aggregation_types: Support metric aggregation type. 1298 :type supported_aggregation_types: list[str or 1299 ~azure.mgmt.databoxedge.v2019_03_01.models.MetricAggregationType] 1300 """ 1301 1302 _attribute_map = { 1303 'name': {'key': 'name', 'type': 'str'}, 1304 'display_name': {'key': 'displayName', 'type': 'str'}, 1305 'display_description': {'key': 'displayDescription', 'type': 'str'}, 1306 'unit': {'key': 'unit', 'type': 'str'}, 1307 'aggregation_type': {'key': 'aggregationType', 'type': 'str'}, 1308 'dimensions': {'key': 'dimensions', 'type': '[MetricDimensionV1]'}, 1309 'fill_gap_with_zero': {'key': 'fillGapWithZero', 'type': 'bool'}, 1310 'category': {'key': 'category', 'type': 'str'}, 1311 'resource_id_dimension_name_override': {'key': 'resourceIdDimensionNameOverride', 'type': 'str'}, 1312 'supported_time_grain_types': {'key': 'supportedTimeGrainTypes', 'type': '[str]'}, 1313 'supported_aggregation_types': {'key': 'supportedAggregationTypes', 'type': '[str]'}, 1314 } 1315 1316 def __init__( 1317 self, 1318 **kwargs 1319 ): 1320 super(MetricSpecificationV1, self).__init__(**kwargs) 1321 self.name = kwargs.get('name', None) 1322 self.display_name = kwargs.get('display_name', None) 1323 self.display_description = kwargs.get('display_description', None) 1324 self.unit = kwargs.get('unit', None) 1325 self.aggregation_type = kwargs.get('aggregation_type', None) 1326 self.dimensions = kwargs.get('dimensions', None) 1327 self.fill_gap_with_zero = kwargs.get('fill_gap_with_zero', None) 1328 self.category = kwargs.get('category', None) 1329 self.resource_id_dimension_name_override = kwargs.get('resource_id_dimension_name_override', None) 1330 self.supported_time_grain_types = kwargs.get('supported_time_grain_types', None) 1331 self.supported_aggregation_types = kwargs.get('supported_aggregation_types', None) 1332 1333 1334class MountPointMap(msrest.serialization.Model): 1335 """The share mount point. 1336 1337 Variables are only populated by the server, and will be ignored when sending a request. 1338 1339 All required parameters must be populated in order to send to Azure. 1340 1341 :param share_id: Required. ID of the share mounted to the role VM. 1342 :type share_id: str 1343 :ivar role_id: ID of the role to which share is mounted. 1344 :vartype role_id: str 1345 :ivar mount_point: Mount point for the share. 1346 :vartype mount_point: str 1347 :ivar role_type: Role type. Possible values include: "IOT", "ASA", "Functions", "Cognitive". 1348 :vartype role_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.RoleTypes 1349 """ 1350 1351 _validation = { 1352 'share_id': {'required': True}, 1353 'role_id': {'readonly': True}, 1354 'mount_point': {'readonly': True}, 1355 'role_type': {'readonly': True}, 1356 } 1357 1358 _attribute_map = { 1359 'share_id': {'key': 'shareId', 'type': 'str'}, 1360 'role_id': {'key': 'roleId', 'type': 'str'}, 1361 'mount_point': {'key': 'mountPoint', 'type': 'str'}, 1362 'role_type': {'key': 'roleType', 'type': 'str'}, 1363 } 1364 1365 def __init__( 1366 self, 1367 **kwargs 1368 ): 1369 super(MountPointMap, self).__init__(**kwargs) 1370 self.share_id = kwargs['share_id'] 1371 self.role_id = None 1372 self.mount_point = None 1373 self.role_type = None 1374 1375 1376class NetworkAdapter(msrest.serialization.Model): 1377 """Represents the networkAdapter on a device. 1378 1379 Variables are only populated by the server, and will be ignored when sending a request. 1380 1381 :ivar adapter_id: Instance ID of network adapter. 1382 :vartype adapter_id: str 1383 :ivar adapter_position: Hardware position of network adapter. 1384 :vartype adapter_position: ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterPosition 1385 :ivar index: Logical index of the adapter. 1386 :vartype index: int 1387 :ivar node_id: Node ID of the network adapter. 1388 :vartype node_id: str 1389 :ivar network_adapter_name: Network adapter name. 1390 :vartype network_adapter_name: str 1391 :ivar label: Hardware label for the adapter. 1392 :vartype label: str 1393 :ivar mac_address: MAC address. 1394 :vartype mac_address: str 1395 :ivar link_speed: Link speed. 1396 :vartype link_speed: long 1397 :ivar status: Value indicating whether this adapter is valid. Possible values include: 1398 "Inactive", "Active". 1399 :vartype status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterStatus 1400 :param rdma_status: Value indicating whether this adapter is RDMA capable. Possible values 1401 include: "Incapable", "Capable". 1402 :type rdma_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterRDMAStatus 1403 :param dhcp_status: Value indicating whether this adapter has DHCP enabled. Possible values 1404 include: "Disabled", "Enabled". 1405 :type dhcp_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapterDHCPStatus 1406 :ivar ipv4_configuration: The IPv4 configuration of the network adapter. 1407 :vartype ipv4_configuration: ~azure.mgmt.databoxedge.v2019_03_01.models.Ipv4Config 1408 :ivar ipv6_configuration: The IPv6 configuration of the network adapter. 1409 :vartype ipv6_configuration: ~azure.mgmt.databoxedge.v2019_03_01.models.Ipv6Config 1410 :ivar ipv6_link_local_address: The IPv6 local address. 1411 :vartype ipv6_link_local_address: str 1412 :ivar dns_servers: The list of DNS Servers of the device. 1413 :vartype dns_servers: list[str] 1414 """ 1415 1416 _validation = { 1417 'adapter_id': {'readonly': True}, 1418 'adapter_position': {'readonly': True}, 1419 'index': {'readonly': True}, 1420 'node_id': {'readonly': True}, 1421 'network_adapter_name': {'readonly': True}, 1422 'label': {'readonly': True}, 1423 'mac_address': {'readonly': True}, 1424 'link_speed': {'readonly': True}, 1425 'status': {'readonly': True}, 1426 'ipv4_configuration': {'readonly': True}, 1427 'ipv6_configuration': {'readonly': True}, 1428 'ipv6_link_local_address': {'readonly': True}, 1429 'dns_servers': {'readonly': True}, 1430 } 1431 1432 _attribute_map = { 1433 'adapter_id': {'key': 'adapterId', 'type': 'str'}, 1434 'adapter_position': {'key': 'adapterPosition', 'type': 'NetworkAdapterPosition'}, 1435 'index': {'key': 'index', 'type': 'int'}, 1436 'node_id': {'key': 'nodeId', 'type': 'str'}, 1437 'network_adapter_name': {'key': 'networkAdapterName', 'type': 'str'}, 1438 'label': {'key': 'label', 'type': 'str'}, 1439 'mac_address': {'key': 'macAddress', 'type': 'str'}, 1440 'link_speed': {'key': 'linkSpeed', 'type': 'long'}, 1441 'status': {'key': 'status', 'type': 'str'}, 1442 'rdma_status': {'key': 'rdmaStatus', 'type': 'str'}, 1443 'dhcp_status': {'key': 'dhcpStatus', 'type': 'str'}, 1444 'ipv4_configuration': {'key': 'ipv4Configuration', 'type': 'Ipv4Config'}, 1445 'ipv6_configuration': {'key': 'ipv6Configuration', 'type': 'Ipv6Config'}, 1446 'ipv6_link_local_address': {'key': 'ipv6LinkLocalAddress', 'type': 'str'}, 1447 'dns_servers': {'key': 'dnsServers', 'type': '[str]'}, 1448 } 1449 1450 def __init__( 1451 self, 1452 **kwargs 1453 ): 1454 super(NetworkAdapter, self).__init__(**kwargs) 1455 self.adapter_id = None 1456 self.adapter_position = None 1457 self.index = None 1458 self.node_id = None 1459 self.network_adapter_name = None 1460 self.label = None 1461 self.mac_address = None 1462 self.link_speed = None 1463 self.status = None 1464 self.rdma_status = kwargs.get('rdma_status', None) 1465 self.dhcp_status = kwargs.get('dhcp_status', None) 1466 self.ipv4_configuration = None 1467 self.ipv6_configuration = None 1468 self.ipv6_link_local_address = None 1469 self.dns_servers = None 1470 1471 1472class NetworkAdapterPosition(msrest.serialization.Model): 1473 """The network adapter position. 1474 1475 Variables are only populated by the server, and will be ignored when sending a request. 1476 1477 :ivar network_group: The network group. Possible values include: "None", "NonRDMA", "RDMA". 1478 :vartype network_group: str or ~azure.mgmt.databoxedge.v2019_03_01.models.NetworkGroup 1479 :ivar port: The port. 1480 :vartype port: int 1481 """ 1482 1483 _validation = { 1484 'network_group': {'readonly': True}, 1485 'port': {'readonly': True}, 1486 } 1487 1488 _attribute_map = { 1489 'network_group': {'key': 'networkGroup', 'type': 'str'}, 1490 'port': {'key': 'port', 'type': 'int'}, 1491 } 1492 1493 def __init__( 1494 self, 1495 **kwargs 1496 ): 1497 super(NetworkAdapterPosition, self).__init__(**kwargs) 1498 self.network_group = None 1499 self.port = None 1500 1501 1502class NetworkSettings(ARMBaseModel): 1503 """The network settings of a device. 1504 1505 Variables are only populated by the server, and will be ignored when sending a request. 1506 1507 :ivar id: The path ID that uniquely identifies the object. 1508 :vartype id: str 1509 :ivar name: The object name. 1510 :vartype name: str 1511 :ivar type: The hierarchical type of the object. 1512 :vartype type: str 1513 :ivar network_adapters: The network adapter list on the device. 1514 :vartype network_adapters: list[~azure.mgmt.databoxedge.v2019_03_01.models.NetworkAdapter] 1515 """ 1516 1517 _validation = { 1518 'id': {'readonly': True}, 1519 'name': {'readonly': True}, 1520 'type': {'readonly': True}, 1521 'network_adapters': {'readonly': True}, 1522 } 1523 1524 _attribute_map = { 1525 'id': {'key': 'id', 'type': 'str'}, 1526 'name': {'key': 'name', 'type': 'str'}, 1527 'type': {'key': 'type', 'type': 'str'}, 1528 'network_adapters': {'key': 'properties.networkAdapters', 'type': '[NetworkAdapter]'}, 1529 } 1530 1531 def __init__( 1532 self, 1533 **kwargs 1534 ): 1535 super(NetworkSettings, self).__init__(**kwargs) 1536 self.network_adapters = None 1537 1538 1539class Operation(msrest.serialization.Model): 1540 """Operations. 1541 1542 :param name: Name of the operation. 1543 :type name: str 1544 :param display: Properties displayed for the operation. 1545 :type display: ~azure.mgmt.databoxedge.v2019_03_01.models.OperationDisplay 1546 :param origin: Origin of the operation. 1547 :type origin: str 1548 :param service_specification: Service specification. 1549 :type service_specification: ~azure.mgmt.databoxedge.v2019_03_01.models.ServiceSpecification 1550 """ 1551 1552 _attribute_map = { 1553 'name': {'key': 'name', 'type': 'str'}, 1554 'display': {'key': 'display', 'type': 'OperationDisplay'}, 1555 'origin': {'key': 'origin', 'type': 'str'}, 1556 'service_specification': {'key': 'properties.serviceSpecification', 'type': 'ServiceSpecification'}, 1557 } 1558 1559 def __init__( 1560 self, 1561 **kwargs 1562 ): 1563 super(Operation, self).__init__(**kwargs) 1564 self.name = kwargs.get('name', None) 1565 self.display = kwargs.get('display', None) 1566 self.origin = kwargs.get('origin', None) 1567 self.service_specification = kwargs.get('service_specification', None) 1568 1569 1570class OperationDisplay(msrest.serialization.Model): 1571 """Operation display properties. 1572 1573 :param provider: Provider name. 1574 :type provider: str 1575 :param resource: The type of resource in which the operation is performed. 1576 :type resource: str 1577 :param operation: Operation to be performed on the resource. 1578 :type operation: str 1579 :param description: Description of the operation to be performed. 1580 :type description: str 1581 """ 1582 1583 _attribute_map = { 1584 'provider': {'key': 'provider', 'type': 'str'}, 1585 'resource': {'key': 'resource', 'type': 'str'}, 1586 'operation': {'key': 'operation', 'type': 'str'}, 1587 'description': {'key': 'description', 'type': 'str'}, 1588 } 1589 1590 def __init__( 1591 self, 1592 **kwargs 1593 ): 1594 super(OperationDisplay, self).__init__(**kwargs) 1595 self.provider = kwargs.get('provider', None) 1596 self.resource = kwargs.get('resource', None) 1597 self.operation = kwargs.get('operation', None) 1598 self.description = kwargs.get('description', None) 1599 1600 1601class OperationsList(msrest.serialization.Model): 1602 """The list of operations used for the discovery of available provider operations. 1603 1604 All required parameters must be populated in order to send to Azure. 1605 1606 :param value: Required. The value. 1607 :type value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Operation] 1608 :param next_link: Link to the next set of results. 1609 :type next_link: str 1610 """ 1611 1612 _validation = { 1613 'value': {'required': True}, 1614 } 1615 1616 _attribute_map = { 1617 'value': {'key': 'value', 'type': '[Operation]'}, 1618 'next_link': {'key': 'nextLink', 'type': 'str'}, 1619 } 1620 1621 def __init__( 1622 self, 1623 **kwargs 1624 ): 1625 super(OperationsList, self).__init__(**kwargs) 1626 self.value = kwargs['value'] 1627 self.next_link = kwargs.get('next_link', None) 1628 1629 1630class Order(ARMBaseModel): 1631 """The order details. 1632 1633 Variables are only populated by the server, and will be ignored when sending a request. 1634 1635 :ivar id: The path ID that uniquely identifies the object. 1636 :vartype id: str 1637 :ivar name: The object name. 1638 :vartype name: str 1639 :ivar type: The hierarchical type of the object. 1640 :vartype type: str 1641 :param contact_information: The contact details. 1642 :type contact_information: ~azure.mgmt.databoxedge.v2019_03_01.models.ContactDetails 1643 :param shipping_address: The shipping address. 1644 :type shipping_address: ~azure.mgmt.databoxedge.v2019_03_01.models.Address 1645 :param current_status: Current status of the order. 1646 :type current_status: ~azure.mgmt.databoxedge.v2019_03_01.models.OrderStatus 1647 :ivar order_history: List of status changes in the order. 1648 :vartype order_history: list[~azure.mgmt.databoxedge.v2019_03_01.models.OrderStatus] 1649 :ivar serial_number: Serial number of the device. 1650 :vartype serial_number: str 1651 :ivar delivery_tracking_info: Tracking information for the package delivered to the customer 1652 whether it has an original or a replacement device. 1653 :vartype delivery_tracking_info: list[~azure.mgmt.databoxedge.v2019_03_01.models.TrackingInfo] 1654 :ivar return_tracking_info: Tracking information for the package returned from the customer 1655 whether it has an original or a replacement device. 1656 :vartype return_tracking_info: list[~azure.mgmt.databoxedge.v2019_03_01.models.TrackingInfo] 1657 """ 1658 1659 _validation = { 1660 'id': {'readonly': True}, 1661 'name': {'readonly': True}, 1662 'type': {'readonly': True}, 1663 'order_history': {'readonly': True}, 1664 'serial_number': {'readonly': True}, 1665 'delivery_tracking_info': {'readonly': True}, 1666 'return_tracking_info': {'readonly': True}, 1667 } 1668 1669 _attribute_map = { 1670 'id': {'key': 'id', 'type': 'str'}, 1671 'name': {'key': 'name', 'type': 'str'}, 1672 'type': {'key': 'type', 'type': 'str'}, 1673 'contact_information': {'key': 'properties.contactInformation', 'type': 'ContactDetails'}, 1674 'shipping_address': {'key': 'properties.shippingAddress', 'type': 'Address'}, 1675 'current_status': {'key': 'properties.currentStatus', 'type': 'OrderStatus'}, 1676 'order_history': {'key': 'properties.orderHistory', 'type': '[OrderStatus]'}, 1677 'serial_number': {'key': 'properties.serialNumber', 'type': 'str'}, 1678 'delivery_tracking_info': {'key': 'properties.deliveryTrackingInfo', 'type': '[TrackingInfo]'}, 1679 'return_tracking_info': {'key': 'properties.returnTrackingInfo', 'type': '[TrackingInfo]'}, 1680 } 1681 1682 def __init__( 1683 self, 1684 **kwargs 1685 ): 1686 super(Order, self).__init__(**kwargs) 1687 self.contact_information = kwargs.get('contact_information', None) 1688 self.shipping_address = kwargs.get('shipping_address', None) 1689 self.current_status = kwargs.get('current_status', None) 1690 self.order_history = None 1691 self.serial_number = None 1692 self.delivery_tracking_info = None 1693 self.return_tracking_info = None 1694 1695 1696class OrderList(msrest.serialization.Model): 1697 """List of order entities. 1698 1699 Variables are only populated by the server, and will be ignored when sending a request. 1700 1701 :ivar value: The list of orders. 1702 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Order] 1703 :ivar next_link: Link to the next set of results. 1704 :vartype next_link: str 1705 """ 1706 1707 _validation = { 1708 'value': {'readonly': True}, 1709 'next_link': {'readonly': True}, 1710 } 1711 1712 _attribute_map = { 1713 'value': {'key': 'value', 'type': '[Order]'}, 1714 'next_link': {'key': 'nextLink', 'type': 'str'}, 1715 } 1716 1717 def __init__( 1718 self, 1719 **kwargs 1720 ): 1721 super(OrderList, self).__init__(**kwargs) 1722 self.value = None 1723 self.next_link = None 1724 1725 1726class OrderStatus(msrest.serialization.Model): 1727 """Represents a single status change. 1728 1729 Variables are only populated by the server, and will be ignored when sending a request. 1730 1731 All required parameters must be populated in order to send to Azure. 1732 1733 :param status: Required. Status of the order as per the allowed status types. Possible values 1734 include: "Untracked", "AwaitingFulfilment", "AwaitingPreparation", "AwaitingShipment", 1735 "Shipped", "Arriving", "Delivered", "ReplacementRequested", "LostDevice", "Declined", 1736 "ReturnInitiated", "AwaitingReturnShipment", "ShippedBack", "CollectedAtMicrosoft". 1737 :type status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.OrderState 1738 :ivar update_date_time: Time of status update. 1739 :vartype update_date_time: ~datetime.datetime 1740 :param comments: Comments related to this status change. 1741 :type comments: str 1742 """ 1743 1744 _validation = { 1745 'status': {'required': True}, 1746 'update_date_time': {'readonly': True}, 1747 } 1748 1749 _attribute_map = { 1750 'status': {'key': 'status', 'type': 'str'}, 1751 'update_date_time': {'key': 'updateDateTime', 'type': 'iso-8601'}, 1752 'comments': {'key': 'comments', 'type': 'str'}, 1753 } 1754 1755 def __init__( 1756 self, 1757 **kwargs 1758 ): 1759 super(OrderStatus, self).__init__(**kwargs) 1760 self.status = kwargs['status'] 1761 self.update_date_time = None 1762 self.comments = kwargs.get('comments', None) 1763 1764 1765class PeriodicTimerEventTrigger(Trigger): 1766 """Trigger details. 1767 1768 Variables are only populated by the server, and will be ignored when sending a request. 1769 1770 All required parameters must be populated in order to send to Azure. 1771 1772 :ivar id: The path ID that uniquely identifies the object. 1773 :vartype id: str 1774 :ivar name: The object name. 1775 :vartype name: str 1776 :ivar type: The hierarchical type of the object. 1777 :vartype type: str 1778 :param kind: Required. Trigger Kind.Constant filled by server. Possible values include: 1779 "FileEvent", "PeriodicTimerEvent". 1780 :type kind: str or ~azure.mgmt.databoxedge.v2019_03_01.models.TriggerEventType 1781 :param source_info: Required. Periodic timer details. 1782 :type source_info: ~azure.mgmt.databoxedge.v2019_03_01.models.PeriodicTimerSourceInfo 1783 :param sink_info: Required. Role Sink information. 1784 :type sink_info: ~azure.mgmt.databoxedge.v2019_03_01.models.RoleSinkInfo 1785 :param custom_context_tag: A custom context tag typically used to correlate the trigger against 1786 its usage. For example, if a periodic timer trigger is intended for certain specific IoT 1787 modules in the device, the tag can be the name or the image URL of the module. 1788 :type custom_context_tag: str 1789 """ 1790 1791 _validation = { 1792 'id': {'readonly': True}, 1793 'name': {'readonly': True}, 1794 'type': {'readonly': True}, 1795 'kind': {'required': True}, 1796 'source_info': {'required': True}, 1797 'sink_info': {'required': True}, 1798 } 1799 1800 _attribute_map = { 1801 'id': {'key': 'id', 'type': 'str'}, 1802 'name': {'key': 'name', 'type': 'str'}, 1803 'type': {'key': 'type', 'type': 'str'}, 1804 'kind': {'key': 'kind', 'type': 'str'}, 1805 'source_info': {'key': 'properties.sourceInfo', 'type': 'PeriodicTimerSourceInfo'}, 1806 'sink_info': {'key': 'properties.sinkInfo', 'type': 'RoleSinkInfo'}, 1807 'custom_context_tag': {'key': 'properties.customContextTag', 'type': 'str'}, 1808 } 1809 1810 def __init__( 1811 self, 1812 **kwargs 1813 ): 1814 super(PeriodicTimerEventTrigger, self).__init__(**kwargs) 1815 self.kind = 'PeriodicTimerEvent' # type: str 1816 self.source_info = kwargs['source_info'] 1817 self.sink_info = kwargs['sink_info'] 1818 self.custom_context_tag = kwargs.get('custom_context_tag', None) 1819 1820 1821class PeriodicTimerSourceInfo(msrest.serialization.Model): 1822 """Periodic timer event source. 1823 1824 All required parameters must be populated in order to send to Azure. 1825 1826 :param start_time: Required. The time of the day that results in a valid trigger. Schedule is 1827 computed with reference to the time specified up to seconds. If timezone is not specified the 1828 time will considered to be in device timezone. The value will always be returned as UTC time. 1829 :type start_time: ~datetime.datetime 1830 :param schedule: Required. Periodic frequency at which timer event needs to be raised. Supports 1831 daily, hourly, minutes, and seconds. 1832 :type schedule: str 1833 :param topic: Topic where periodic events are published to IoT device. 1834 :type topic: str 1835 """ 1836 1837 _validation = { 1838 'start_time': {'required': True}, 1839 'schedule': {'required': True}, 1840 } 1841 1842 _attribute_map = { 1843 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 1844 'schedule': {'key': 'schedule', 'type': 'str'}, 1845 'topic': {'key': 'topic', 'type': 'str'}, 1846 } 1847 1848 def __init__( 1849 self, 1850 **kwargs 1851 ): 1852 super(PeriodicTimerSourceInfo, self).__init__(**kwargs) 1853 self.start_time = kwargs['start_time'] 1854 self.schedule = kwargs['schedule'] 1855 self.topic = kwargs.get('topic', None) 1856 1857 1858class RefreshDetails(msrest.serialization.Model): 1859 """Fields for tracking refresh job on the share. 1860 1861 :param in_progress_refresh_job_id: If a refresh share job is currently in progress on this 1862 share, this field indicates the ARM resource ID of that job. The field is empty if no job is in 1863 progress. 1864 :type in_progress_refresh_job_id: str 1865 :param last_completed_refresh_job_time_in_utc: Indicates the completed time for the last 1866 refresh job on this particular share, if any.This could be a failed job or a successful job. 1867 :type last_completed_refresh_job_time_in_utc: ~datetime.datetime 1868 :param error_manifest_file: Indicates the relative path of the error xml for the last refresh 1869 job on this particular share, if any. This could be a failed job or a successful job. 1870 :type error_manifest_file: str 1871 :param last_job: Indicates the id of the last refresh job on this particular share,if any. This 1872 could be a failed job or a successful job. 1873 :type last_job: str 1874 """ 1875 1876 _attribute_map = { 1877 'in_progress_refresh_job_id': {'key': 'inProgressRefreshJobId', 'type': 'str'}, 1878 'last_completed_refresh_job_time_in_utc': {'key': 'lastCompletedRefreshJobTimeInUTC', 'type': 'iso-8601'}, 1879 'error_manifest_file': {'key': 'errorManifestFile', 'type': 'str'}, 1880 'last_job': {'key': 'lastJob', 'type': 'str'}, 1881 } 1882 1883 def __init__( 1884 self, 1885 **kwargs 1886 ): 1887 super(RefreshDetails, self).__init__(**kwargs) 1888 self.in_progress_refresh_job_id = kwargs.get('in_progress_refresh_job_id', None) 1889 self.last_completed_refresh_job_time_in_utc = kwargs.get('last_completed_refresh_job_time_in_utc', None) 1890 self.error_manifest_file = kwargs.get('error_manifest_file', None) 1891 self.last_job = kwargs.get('last_job', None) 1892 1893 1894class RoleList(msrest.serialization.Model): 1895 """Collection of all the roles on the Data Box Edge device. 1896 1897 Variables are only populated by the server, and will be ignored when sending a request. 1898 1899 :ivar value: The Value. 1900 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Role] 1901 :ivar next_link: Link to the next set of results. 1902 :vartype next_link: str 1903 """ 1904 1905 _validation = { 1906 'value': {'readonly': True}, 1907 'next_link': {'readonly': True}, 1908 } 1909 1910 _attribute_map = { 1911 'value': {'key': 'value', 'type': '[Role]'}, 1912 'next_link': {'key': 'nextLink', 'type': 'str'}, 1913 } 1914 1915 def __init__( 1916 self, 1917 **kwargs 1918 ): 1919 super(RoleList, self).__init__(**kwargs) 1920 self.value = None 1921 self.next_link = None 1922 1923 1924class RoleSinkInfo(msrest.serialization.Model): 1925 """Compute role against which events will be raised. 1926 1927 All required parameters must be populated in order to send to Azure. 1928 1929 :param role_id: Required. Compute role ID. 1930 :type role_id: str 1931 """ 1932 1933 _validation = { 1934 'role_id': {'required': True}, 1935 } 1936 1937 _attribute_map = { 1938 'role_id': {'key': 'roleId', 'type': 'str'}, 1939 } 1940 1941 def __init__( 1942 self, 1943 **kwargs 1944 ): 1945 super(RoleSinkInfo, self).__init__(**kwargs) 1946 self.role_id = kwargs['role_id'] 1947 1948 1949class SecuritySettings(ARMBaseModel): 1950 """The security settings of a device. 1951 1952 Variables are only populated by the server, and will be ignored when sending a request. 1953 1954 All required parameters must be populated in order to send to Azure. 1955 1956 :ivar id: The path ID that uniquely identifies the object. 1957 :vartype id: str 1958 :ivar name: The object name. 1959 :vartype name: str 1960 :ivar type: The hierarchical type of the object. 1961 :vartype type: str 1962 :param device_admin_password: Required. Device administrator password as an encrypted string 1963 (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual 1964 password should have at least 8 characters that are a combination of uppercase, lowercase, 1965 numeric, and special characters. 1966 :type device_admin_password: 1967 ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 1968 """ 1969 1970 _validation = { 1971 'id': {'readonly': True}, 1972 'name': {'readonly': True}, 1973 'type': {'readonly': True}, 1974 'device_admin_password': {'required': True}, 1975 } 1976 1977 _attribute_map = { 1978 'id': {'key': 'id', 'type': 'str'}, 1979 'name': {'key': 'name', 'type': 'str'}, 1980 'type': {'key': 'type', 'type': 'str'}, 1981 'device_admin_password': {'key': 'properties.deviceAdminPassword', 'type': 'AsymmetricEncryptedSecret'}, 1982 } 1983 1984 def __init__( 1985 self, 1986 **kwargs 1987 ): 1988 super(SecuritySettings, self).__init__(**kwargs) 1989 self.device_admin_password = kwargs['device_admin_password'] 1990 1991 1992class ServiceSpecification(msrest.serialization.Model): 1993 """Service specification. 1994 1995 :param metric_specifications: Metric specification as defined by shoebox. 1996 :type metric_specifications: 1997 list[~azure.mgmt.databoxedge.v2019_03_01.models.MetricSpecificationV1] 1998 """ 1999 2000 _attribute_map = { 2001 'metric_specifications': {'key': 'metricSpecifications', 'type': '[MetricSpecificationV1]'}, 2002 } 2003 2004 def __init__( 2005 self, 2006 **kwargs 2007 ): 2008 super(ServiceSpecification, self).__init__(**kwargs) 2009 self.metric_specifications = kwargs.get('metric_specifications', None) 2010 2011 2012class Share(ARMBaseModel): 2013 """Represents a share on the Data Box Edge/Gateway device. 2014 2015 Variables are only populated by the server, and will be ignored when sending a request. 2016 2017 All required parameters must be populated in order to send to Azure. 2018 2019 :ivar id: The path ID that uniquely identifies the object. 2020 :vartype id: str 2021 :ivar name: The object name. 2022 :vartype name: str 2023 :ivar type: The hierarchical type of the object. 2024 :vartype type: str 2025 :param description: Description for the share. 2026 :type description: str 2027 :param share_status: Required. Current status of the share. Possible values include: "Online", 2028 "Offline". 2029 :type share_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareStatus 2030 :param monitoring_status: Required. Current monitoring status of the share. Possible values 2031 include: "Enabled", "Disabled". 2032 :type monitoring_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.MonitoringStatus 2033 :param azure_container_info: Azure container mapping for the share. 2034 :type azure_container_info: ~azure.mgmt.databoxedge.v2019_03_01.models.AzureContainerInfo 2035 :param access_protocol: Required. Access protocol to be used by the share. Possible values 2036 include: "SMB", "NFS". 2037 :type access_protocol: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessProtocol 2038 :param user_access_rights: Mapping of users and corresponding access rights on the share 2039 (required for SMB protocol). 2040 :type user_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.UserAccessRight] 2041 :param client_access_rights: List of IP addresses and corresponding access rights on the 2042 share(required for NFS protocol). 2043 :type client_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.ClientAccessRight] 2044 :param refresh_details: Details of the refresh job on this share. 2045 :type refresh_details: ~azure.mgmt.databoxedge.v2019_03_01.models.RefreshDetails 2046 :ivar share_mappings: Share mount point to the role. 2047 :vartype share_mappings: list[~azure.mgmt.databoxedge.v2019_03_01.models.MountPointMap] 2048 :param data_policy: Data policy of the share. Possible values include: "Cloud", "Local". 2049 :type data_policy: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DataPolicy 2050 """ 2051 2052 _validation = { 2053 'id': {'readonly': True}, 2054 'name': {'readonly': True}, 2055 'type': {'readonly': True}, 2056 'share_status': {'required': True}, 2057 'monitoring_status': {'required': True}, 2058 'access_protocol': {'required': True}, 2059 'share_mappings': {'readonly': True}, 2060 } 2061 2062 _attribute_map = { 2063 'id': {'key': 'id', 'type': 'str'}, 2064 'name': {'key': 'name', 'type': 'str'}, 2065 'type': {'key': 'type', 'type': 'str'}, 2066 'description': {'key': 'properties.description', 'type': 'str'}, 2067 'share_status': {'key': 'properties.shareStatus', 'type': 'str'}, 2068 'monitoring_status': {'key': 'properties.monitoringStatus', 'type': 'str'}, 2069 'azure_container_info': {'key': 'properties.azureContainerInfo', 'type': 'AzureContainerInfo'}, 2070 'access_protocol': {'key': 'properties.accessProtocol', 'type': 'str'}, 2071 'user_access_rights': {'key': 'properties.userAccessRights', 'type': '[UserAccessRight]'}, 2072 'client_access_rights': {'key': 'properties.clientAccessRights', 'type': '[ClientAccessRight]'}, 2073 'refresh_details': {'key': 'properties.refreshDetails', 'type': 'RefreshDetails'}, 2074 'share_mappings': {'key': 'properties.shareMappings', 'type': '[MountPointMap]'}, 2075 'data_policy': {'key': 'properties.dataPolicy', 'type': 'str'}, 2076 } 2077 2078 def __init__( 2079 self, 2080 **kwargs 2081 ): 2082 super(Share, self).__init__(**kwargs) 2083 self.description = kwargs.get('description', None) 2084 self.share_status = kwargs['share_status'] 2085 self.monitoring_status = kwargs['monitoring_status'] 2086 self.azure_container_info = kwargs.get('azure_container_info', None) 2087 self.access_protocol = kwargs['access_protocol'] 2088 self.user_access_rights = kwargs.get('user_access_rights', None) 2089 self.client_access_rights = kwargs.get('client_access_rights', None) 2090 self.refresh_details = kwargs.get('refresh_details', None) 2091 self.share_mappings = None 2092 self.data_policy = kwargs.get('data_policy', None) 2093 2094 2095class ShareAccessRight(msrest.serialization.Model): 2096 """Specifies the mapping between this particular user and the type of access he has on shares on this device. 2097 2098 All required parameters must be populated in order to send to Azure. 2099 2100 :param share_id: Required. The share ID. 2101 :type share_id: str 2102 :param access_type: Required. Type of access to be allowed on the share for this user. Possible 2103 values include: "Change", "Read", "Custom". 2104 :type access_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessType 2105 """ 2106 2107 _validation = { 2108 'share_id': {'required': True}, 2109 'access_type': {'required': True}, 2110 } 2111 2112 _attribute_map = { 2113 'share_id': {'key': 'shareId', 'type': 'str'}, 2114 'access_type': {'key': 'accessType', 'type': 'str'}, 2115 } 2116 2117 def __init__( 2118 self, 2119 **kwargs 2120 ): 2121 super(ShareAccessRight, self).__init__(**kwargs) 2122 self.share_id = kwargs['share_id'] 2123 self.access_type = kwargs['access_type'] 2124 2125 2126class ShareList(msrest.serialization.Model): 2127 """Collection of all the shares on the Data Box Edge/Gateway device. 2128 2129 Variables are only populated by the server, and will be ignored when sending a request. 2130 2131 :ivar value: The list of shares. 2132 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Share] 2133 :ivar next_link: Link to the next set of results. 2134 :vartype next_link: str 2135 """ 2136 2137 _validation = { 2138 'value': {'readonly': True}, 2139 'next_link': {'readonly': True}, 2140 } 2141 2142 _attribute_map = { 2143 'value': {'key': 'value', 'type': '[Share]'}, 2144 'next_link': {'key': 'nextLink', 'type': 'str'}, 2145 } 2146 2147 def __init__( 2148 self, 2149 **kwargs 2150 ): 2151 super(ShareList, self).__init__(**kwargs) 2152 self.value = None 2153 self.next_link = None 2154 2155 2156class Sku(msrest.serialization.Model): 2157 """The SKU type. 2158 2159 :param name: SKU name. Possible values include: "Gateway", "Edge". 2160 :type name: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SkuName 2161 :param tier: The SKU tier. This is based on the SKU name. Possible values include: "Standard". 2162 :type tier: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SkuTier 2163 """ 2164 2165 _attribute_map = { 2166 'name': {'key': 'name', 'type': 'str'}, 2167 'tier': {'key': 'tier', 'type': 'str'}, 2168 } 2169 2170 def __init__( 2171 self, 2172 **kwargs 2173 ): 2174 super(Sku, self).__init__(**kwargs) 2175 self.name = kwargs.get('name', None) 2176 self.tier = kwargs.get('tier', None) 2177 2178 2179class StorageAccountCredential(ARMBaseModel): 2180 """The storage account credential. 2181 2182 Variables are only populated by the server, and will be ignored when sending a request. 2183 2184 All required parameters must be populated in order to send to Azure. 2185 2186 :ivar id: The path ID that uniquely identifies the object. 2187 :vartype id: str 2188 :ivar name: The object name. 2189 :vartype name: str 2190 :ivar type: The hierarchical type of the object. 2191 :vartype type: str 2192 :param alias: Required. Alias for the storage account. 2193 :type alias: str 2194 :param user_name: Username for the storage account. 2195 :type user_name: str 2196 :param account_key: Encrypted storage key. 2197 :type account_key: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2198 :param connection_string: Connection string for the storage account. Use this string if 2199 username and account key are not specified. 2200 :type connection_string: str 2201 :param ssl_status: Required. Signifies whether SSL needs to be enabled or not. Possible values 2202 include: "Enabled", "Disabled". 2203 :type ssl_status: str or ~azure.mgmt.databoxedge.v2019_03_01.models.SSLStatus 2204 :param blob_domain_name: Blob end point for private clouds. 2205 :type blob_domain_name: str 2206 :param account_type: Required. Type of storage accessed on the storage account. Possible values 2207 include: "GeneralPurposeStorage", "BlobStorage". 2208 :type account_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AccountType 2209 """ 2210 2211 _validation = { 2212 'id': {'readonly': True}, 2213 'name': {'readonly': True}, 2214 'type': {'readonly': True}, 2215 'alias': {'required': True}, 2216 'ssl_status': {'required': True}, 2217 'account_type': {'required': True}, 2218 } 2219 2220 _attribute_map = { 2221 'id': {'key': 'id', 'type': 'str'}, 2222 'name': {'key': 'name', 'type': 'str'}, 2223 'type': {'key': 'type', 'type': 'str'}, 2224 'alias': {'key': 'properties.alias', 'type': 'str'}, 2225 'user_name': {'key': 'properties.userName', 'type': 'str'}, 2226 'account_key': {'key': 'properties.accountKey', 'type': 'AsymmetricEncryptedSecret'}, 2227 'connection_string': {'key': 'properties.connectionString', 'type': 'str'}, 2228 'ssl_status': {'key': 'properties.sslStatus', 'type': 'str'}, 2229 'blob_domain_name': {'key': 'properties.blobDomainName', 'type': 'str'}, 2230 'account_type': {'key': 'properties.accountType', 'type': 'str'}, 2231 } 2232 2233 def __init__( 2234 self, 2235 **kwargs 2236 ): 2237 super(StorageAccountCredential, self).__init__(**kwargs) 2238 self.alias = kwargs['alias'] 2239 self.user_name = kwargs.get('user_name', None) 2240 self.account_key = kwargs.get('account_key', None) 2241 self.connection_string = kwargs.get('connection_string', None) 2242 self.ssl_status = kwargs['ssl_status'] 2243 self.blob_domain_name = kwargs.get('blob_domain_name', None) 2244 self.account_type = kwargs['account_type'] 2245 2246 2247class StorageAccountCredentialList(msrest.serialization.Model): 2248 """The collection of storage account credentials. 2249 2250 Variables are only populated by the server, and will be ignored when sending a request. 2251 2252 :ivar value: The value. 2253 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.StorageAccountCredential] 2254 :ivar next_link: Link to the next set of results. 2255 :vartype next_link: str 2256 """ 2257 2258 _validation = { 2259 'value': {'readonly': True}, 2260 'next_link': {'readonly': True}, 2261 } 2262 2263 _attribute_map = { 2264 'value': {'key': 'value', 'type': '[StorageAccountCredential]'}, 2265 'next_link': {'key': 'nextLink', 'type': 'str'}, 2266 } 2267 2268 def __init__( 2269 self, 2270 **kwargs 2271 ): 2272 super(StorageAccountCredentialList, self).__init__(**kwargs) 2273 self.value = None 2274 self.next_link = None 2275 2276 2277class SymmetricKey(msrest.serialization.Model): 2278 """Symmetric key for authentication. 2279 2280 :param connection_string: Connection string based on the symmetric key. 2281 :type connection_string: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2282 """ 2283 2284 _attribute_map = { 2285 'connection_string': {'key': 'connectionString', 'type': 'AsymmetricEncryptedSecret'}, 2286 } 2287 2288 def __init__( 2289 self, 2290 **kwargs 2291 ): 2292 super(SymmetricKey, self).__init__(**kwargs) 2293 self.connection_string = kwargs.get('connection_string', None) 2294 2295 2296class TrackingInfo(msrest.serialization.Model): 2297 """Tracking courier information. 2298 2299 :param serial_number: Serial number of the device being tracked. 2300 :type serial_number: str 2301 :param carrier_name: Name of the carrier used in the delivery. 2302 :type carrier_name: str 2303 :param tracking_id: Tracking ID of the shipment. 2304 :type tracking_id: str 2305 :param tracking_url: Tracking URL of the shipment. 2306 :type tracking_url: str 2307 """ 2308 2309 _attribute_map = { 2310 'serial_number': {'key': 'serialNumber', 'type': 'str'}, 2311 'carrier_name': {'key': 'carrierName', 'type': 'str'}, 2312 'tracking_id': {'key': 'trackingId', 'type': 'str'}, 2313 'tracking_url': {'key': 'trackingUrl', 'type': 'str'}, 2314 } 2315 2316 def __init__( 2317 self, 2318 **kwargs 2319 ): 2320 super(TrackingInfo, self).__init__(**kwargs) 2321 self.serial_number = kwargs.get('serial_number', None) 2322 self.carrier_name = kwargs.get('carrier_name', None) 2323 self.tracking_id = kwargs.get('tracking_id', None) 2324 self.tracking_url = kwargs.get('tracking_url', None) 2325 2326 2327class TriggerList(msrest.serialization.Model): 2328 """Collection of all trigger on the data box edge device. 2329 2330 Variables are only populated by the server, and will be ignored when sending a request. 2331 2332 :ivar value: The list of triggers. 2333 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.Trigger] 2334 :ivar next_link: Link to the next set of results. 2335 :vartype next_link: str 2336 """ 2337 2338 _validation = { 2339 'value': {'readonly': True}, 2340 'next_link': {'readonly': True}, 2341 } 2342 2343 _attribute_map = { 2344 'value': {'key': 'value', 'type': '[Trigger]'}, 2345 'next_link': {'key': 'nextLink', 'type': 'str'}, 2346 } 2347 2348 def __init__( 2349 self, 2350 **kwargs 2351 ): 2352 super(TriggerList, self).__init__(**kwargs) 2353 self.value = None 2354 self.next_link = None 2355 2356 2357class UpdateDownloadProgress(msrest.serialization.Model): 2358 """Details about the download progress of update. 2359 2360 Variables are only populated by the server, and will be ignored when sending a request. 2361 2362 :ivar download_phase: The download phase. Possible values include: "Unknown", "Initializing", 2363 "Downloading", "Verifying". 2364 :vartype download_phase: str or ~azure.mgmt.databoxedge.v2019_03_01.models.DownloadPhase 2365 :ivar percent_complete: Percentage of completion. 2366 :vartype percent_complete: int 2367 :ivar total_bytes_to_download: Total bytes to download. 2368 :vartype total_bytes_to_download: float 2369 :ivar total_bytes_downloaded: Total bytes downloaded. 2370 :vartype total_bytes_downloaded: float 2371 :ivar number_of_updates_to_download: Number of updates to download. 2372 :vartype number_of_updates_to_download: int 2373 :ivar number_of_updates_downloaded: Number of updates downloaded. 2374 :vartype number_of_updates_downloaded: int 2375 """ 2376 2377 _validation = { 2378 'download_phase': {'readonly': True}, 2379 'percent_complete': {'readonly': True}, 2380 'total_bytes_to_download': {'readonly': True}, 2381 'total_bytes_downloaded': {'readonly': True}, 2382 'number_of_updates_to_download': {'readonly': True}, 2383 'number_of_updates_downloaded': {'readonly': True}, 2384 } 2385 2386 _attribute_map = { 2387 'download_phase': {'key': 'downloadPhase', 'type': 'str'}, 2388 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 2389 'total_bytes_to_download': {'key': 'totalBytesToDownload', 'type': 'float'}, 2390 'total_bytes_downloaded': {'key': 'totalBytesDownloaded', 'type': 'float'}, 2391 'number_of_updates_to_download': {'key': 'numberOfUpdatesToDownload', 'type': 'int'}, 2392 'number_of_updates_downloaded': {'key': 'numberOfUpdatesDownloaded', 'type': 'int'}, 2393 } 2394 2395 def __init__( 2396 self, 2397 **kwargs 2398 ): 2399 super(UpdateDownloadProgress, self).__init__(**kwargs) 2400 self.download_phase = None 2401 self.percent_complete = None 2402 self.total_bytes_to_download = None 2403 self.total_bytes_downloaded = None 2404 self.number_of_updates_to_download = None 2405 self.number_of_updates_downloaded = None 2406 2407 2408class UpdateInstallProgress(msrest.serialization.Model): 2409 """Progress details during installation of updates. 2410 2411 Variables are only populated by the server, and will be ignored when sending a request. 2412 2413 :ivar percent_complete: Percentage completed. 2414 :vartype percent_complete: int 2415 :ivar number_of_updates_to_install: Number of updates to install. 2416 :vartype number_of_updates_to_install: int 2417 :ivar number_of_updates_installed: Number of updates installed. 2418 :vartype number_of_updates_installed: int 2419 """ 2420 2421 _validation = { 2422 'percent_complete': {'readonly': True}, 2423 'number_of_updates_to_install': {'readonly': True}, 2424 'number_of_updates_installed': {'readonly': True}, 2425 } 2426 2427 _attribute_map = { 2428 'percent_complete': {'key': 'percentComplete', 'type': 'int'}, 2429 'number_of_updates_to_install': {'key': 'numberOfUpdatesToInstall', 'type': 'int'}, 2430 'number_of_updates_installed': {'key': 'numberOfUpdatesInstalled', 'type': 'int'}, 2431 } 2432 2433 def __init__( 2434 self, 2435 **kwargs 2436 ): 2437 super(UpdateInstallProgress, self).__init__(**kwargs) 2438 self.percent_complete = None 2439 self.number_of_updates_to_install = None 2440 self.number_of_updates_installed = None 2441 2442 2443class UpdateSummary(ARMBaseModel): 2444 """Details about ongoing updates and availability of updates on the device. 2445 2446 Variables are only populated by the server, and will be ignored when sending a request. 2447 2448 :ivar id: The path ID that uniquely identifies the object. 2449 :vartype id: str 2450 :ivar name: The object name. 2451 :vartype name: str 2452 :ivar type: The hierarchical type of the object. 2453 :vartype type: str 2454 :param device_version_number: The current version of the device in format: 1.2.17312.13.",. 2455 :type device_version_number: str 2456 :param friendly_device_version_name: The current version of the device in text format. 2457 :type friendly_device_version_name: str 2458 :param device_last_scanned_date_time: The last time when a scan was done on the device. 2459 :type device_last_scanned_date_time: ~datetime.datetime 2460 :param last_completed_scan_job_date_time: The time when the last scan job was completed 2461 (success/cancelled/failed) on the appliance. 2462 :type last_completed_scan_job_date_time: ~datetime.datetime 2463 :ivar last_completed_download_job_date_time: The time when the last Download job was completed 2464 (success/cancelled/failed) on the appliance. 2465 :vartype last_completed_download_job_date_time: ~datetime.datetime 2466 :ivar last_completed_install_job_date_time: The time when the last Install job was completed 2467 (success/cancelled/failed) on the appliance. 2468 :vartype last_completed_install_job_date_time: ~datetime.datetime 2469 :ivar total_number_of_updates_available: The number of updates available for the current device 2470 version as per the last device scan. 2471 :vartype total_number_of_updates_available: int 2472 :ivar total_number_of_updates_pending_download: The total number of items pending download. 2473 :vartype total_number_of_updates_pending_download: int 2474 :ivar total_number_of_updates_pending_install: The total number of items pending install. 2475 :vartype total_number_of_updates_pending_install: int 2476 :ivar reboot_behavior: Indicates if updates are available and at least one of the updates needs 2477 a reboot. Possible values include: "NeverReboots", "RequiresReboot", "RequestReboot". 2478 :vartype reboot_behavior: str or 2479 ~azure.mgmt.databoxedge.v2019_03_01.models.InstallRebootBehavior 2480 :ivar ongoing_update_operation: The current update operation. Possible values include: "None", 2481 "Scan", "Download", "Install". 2482 :vartype ongoing_update_operation: str or 2483 ~azure.mgmt.databoxedge.v2019_03_01.models.UpdateOperation 2484 :ivar in_progress_download_job_id: The job ID of the download job in progress. 2485 :vartype in_progress_download_job_id: str 2486 :ivar in_progress_install_job_id: The job ID of the install job in progress. 2487 :vartype in_progress_install_job_id: str 2488 :ivar in_progress_download_job_started_date_time: The time when the currently running download 2489 (if any) started. 2490 :vartype in_progress_download_job_started_date_time: ~datetime.datetime 2491 :ivar in_progress_install_job_started_date_time: The time when the currently running install 2492 (if any) started. 2493 :vartype in_progress_install_job_started_date_time: ~datetime.datetime 2494 :ivar update_titles: The list of updates available for install. 2495 :vartype update_titles: list[str] 2496 :ivar total_update_size_in_bytes: The total size of updates available for download in bytes. 2497 :vartype total_update_size_in_bytes: float 2498 """ 2499 2500 _validation = { 2501 'id': {'readonly': True}, 2502 'name': {'readonly': True}, 2503 'type': {'readonly': True}, 2504 'last_completed_download_job_date_time': {'readonly': True}, 2505 'last_completed_install_job_date_time': {'readonly': True}, 2506 'total_number_of_updates_available': {'readonly': True}, 2507 'total_number_of_updates_pending_download': {'readonly': True}, 2508 'total_number_of_updates_pending_install': {'readonly': True}, 2509 'reboot_behavior': {'readonly': True}, 2510 'ongoing_update_operation': {'readonly': True}, 2511 'in_progress_download_job_id': {'readonly': True}, 2512 'in_progress_install_job_id': {'readonly': True}, 2513 'in_progress_download_job_started_date_time': {'readonly': True}, 2514 'in_progress_install_job_started_date_time': {'readonly': True}, 2515 'update_titles': {'readonly': True}, 2516 'total_update_size_in_bytes': {'readonly': True}, 2517 } 2518 2519 _attribute_map = { 2520 'id': {'key': 'id', 'type': 'str'}, 2521 'name': {'key': 'name', 'type': 'str'}, 2522 'type': {'key': 'type', 'type': 'str'}, 2523 'device_version_number': {'key': 'properties.deviceVersionNumber', 'type': 'str'}, 2524 'friendly_device_version_name': {'key': 'properties.friendlyDeviceVersionName', 'type': 'str'}, 2525 'device_last_scanned_date_time': {'key': 'properties.deviceLastScannedDateTime', 'type': 'iso-8601'}, 2526 'last_completed_scan_job_date_time': {'key': 'properties.lastCompletedScanJobDateTime', 'type': 'iso-8601'}, 2527 'last_completed_download_job_date_time': {'key': 'properties.lastCompletedDownloadJobDateTime', 'type': 'iso-8601'}, 2528 'last_completed_install_job_date_time': {'key': 'properties.lastCompletedInstallJobDateTime', 'type': 'iso-8601'}, 2529 'total_number_of_updates_available': {'key': 'properties.totalNumberOfUpdatesAvailable', 'type': 'int'}, 2530 'total_number_of_updates_pending_download': {'key': 'properties.totalNumberOfUpdatesPendingDownload', 'type': 'int'}, 2531 'total_number_of_updates_pending_install': {'key': 'properties.totalNumberOfUpdatesPendingInstall', 'type': 'int'}, 2532 'reboot_behavior': {'key': 'properties.rebootBehavior', 'type': 'str'}, 2533 'ongoing_update_operation': {'key': 'properties.ongoingUpdateOperation', 'type': 'str'}, 2534 'in_progress_download_job_id': {'key': 'properties.inProgressDownloadJobId', 'type': 'str'}, 2535 'in_progress_install_job_id': {'key': 'properties.inProgressInstallJobId', 'type': 'str'}, 2536 'in_progress_download_job_started_date_time': {'key': 'properties.inProgressDownloadJobStartedDateTime', 'type': 'iso-8601'}, 2537 'in_progress_install_job_started_date_time': {'key': 'properties.inProgressInstallJobStartedDateTime', 'type': 'iso-8601'}, 2538 'update_titles': {'key': 'properties.updateTitles', 'type': '[str]'}, 2539 'total_update_size_in_bytes': {'key': 'properties.totalUpdateSizeInBytes', 'type': 'float'}, 2540 } 2541 2542 def __init__( 2543 self, 2544 **kwargs 2545 ): 2546 super(UpdateSummary, self).__init__(**kwargs) 2547 self.device_version_number = kwargs.get('device_version_number', None) 2548 self.friendly_device_version_name = kwargs.get('friendly_device_version_name', None) 2549 self.device_last_scanned_date_time = kwargs.get('device_last_scanned_date_time', None) 2550 self.last_completed_scan_job_date_time = kwargs.get('last_completed_scan_job_date_time', None) 2551 self.last_completed_download_job_date_time = None 2552 self.last_completed_install_job_date_time = None 2553 self.total_number_of_updates_available = None 2554 self.total_number_of_updates_pending_download = None 2555 self.total_number_of_updates_pending_install = None 2556 self.reboot_behavior = None 2557 self.ongoing_update_operation = None 2558 self.in_progress_download_job_id = None 2559 self.in_progress_install_job_id = None 2560 self.in_progress_download_job_started_date_time = None 2561 self.in_progress_install_job_started_date_time = None 2562 self.update_titles = None 2563 self.total_update_size_in_bytes = None 2564 2565 2566class UploadCertificateRequest(msrest.serialization.Model): 2567 """The upload certificate request. 2568 2569 All required parameters must be populated in order to send to Azure. 2570 2571 :param authentication_type: The authentication type. Possible values include: "Invalid", 2572 "AzureActiveDirectory". 2573 :type authentication_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AuthenticationType 2574 :param certificate: Required. The base64 encoded certificate raw data. 2575 :type certificate: str 2576 """ 2577 2578 _validation = { 2579 'certificate': {'required': True}, 2580 } 2581 2582 _attribute_map = { 2583 'authentication_type': {'key': 'properties.authenticationType', 'type': 'str'}, 2584 'certificate': {'key': 'properties.certificate', 'type': 'str'}, 2585 } 2586 2587 def __init__( 2588 self, 2589 **kwargs 2590 ): 2591 super(UploadCertificateRequest, self).__init__(**kwargs) 2592 self.authentication_type = kwargs.get('authentication_type', None) 2593 self.certificate = kwargs['certificate'] 2594 2595 2596class UploadCertificateResponse(msrest.serialization.Model): 2597 """The upload registration certificate response. 2598 2599 All required parameters must be populated in order to send to Azure. 2600 2601 :param auth_type: Specifies authentication type. Possible values include: "Invalid", 2602 "AzureActiveDirectory". 2603 :type auth_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.AuthenticationType 2604 :param resource_id: Required. The resource ID of the Data Box Edge/Gateway device. 2605 :type resource_id: str 2606 :param aad_authority: Required. Azure Active Directory tenant authority. 2607 :type aad_authority: str 2608 :param aad_tenant_id: Required. Azure Active Directory tenant ID. 2609 :type aad_tenant_id: str 2610 :param service_principal_client_id: Required. Azure Active Directory service principal client 2611 ID. 2612 :type service_principal_client_id: str 2613 :param service_principal_object_id: Required. Azure Active Directory service principal object 2614 ID. 2615 :type service_principal_object_id: str 2616 :param azure_management_endpoint_audience: Required. The azure management endpoint audience. 2617 :type azure_management_endpoint_audience: str 2618 """ 2619 2620 _validation = { 2621 'resource_id': {'required': True}, 2622 'aad_authority': {'required': True}, 2623 'aad_tenant_id': {'required': True}, 2624 'service_principal_client_id': {'required': True}, 2625 'service_principal_object_id': {'required': True}, 2626 'azure_management_endpoint_audience': {'required': True}, 2627 } 2628 2629 _attribute_map = { 2630 'auth_type': {'key': 'authType', 'type': 'str'}, 2631 'resource_id': {'key': 'resourceId', 'type': 'str'}, 2632 'aad_authority': {'key': 'aadAuthority', 'type': 'str'}, 2633 'aad_tenant_id': {'key': 'aadTenantId', 'type': 'str'}, 2634 'service_principal_client_id': {'key': 'servicePrincipalClientId', 'type': 'str'}, 2635 'service_principal_object_id': {'key': 'servicePrincipalObjectId', 'type': 'str'}, 2636 'azure_management_endpoint_audience': {'key': 'azureManagementEndpointAudience', 'type': 'str'}, 2637 } 2638 2639 def __init__( 2640 self, 2641 **kwargs 2642 ): 2643 super(UploadCertificateResponse, self).__init__(**kwargs) 2644 self.auth_type = kwargs.get('auth_type', None) 2645 self.resource_id = kwargs['resource_id'] 2646 self.aad_authority = kwargs['aad_authority'] 2647 self.aad_tenant_id = kwargs['aad_tenant_id'] 2648 self.service_principal_client_id = kwargs['service_principal_client_id'] 2649 self.service_principal_object_id = kwargs['service_principal_object_id'] 2650 self.azure_management_endpoint_audience = kwargs['azure_management_endpoint_audience'] 2651 2652 2653class User(ARMBaseModel): 2654 """Represents a user who has access to one or more shares on the Data Box Edge/Gateway device. 2655 2656 Variables are only populated by the server, and will be ignored when sending a request. 2657 2658 :ivar id: The path ID that uniquely identifies the object. 2659 :vartype id: str 2660 :ivar name: The object name. 2661 :vartype name: str 2662 :ivar type: The hierarchical type of the object. 2663 :vartype type: str 2664 :param encrypted_password: The password details. 2665 :type encrypted_password: ~azure.mgmt.databoxedge.v2019_03_01.models.AsymmetricEncryptedSecret 2666 :param share_access_rights: List of shares that the user has rights on. This field should not 2667 be specified during user creation. 2668 :type share_access_rights: list[~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessRight] 2669 """ 2670 2671 _validation = { 2672 'id': {'readonly': True}, 2673 'name': {'readonly': True}, 2674 'type': {'readonly': True}, 2675 } 2676 2677 _attribute_map = { 2678 'id': {'key': 'id', 'type': 'str'}, 2679 'name': {'key': 'name', 'type': 'str'}, 2680 'type': {'key': 'type', 'type': 'str'}, 2681 'encrypted_password': {'key': 'properties.encryptedPassword', 'type': 'AsymmetricEncryptedSecret'}, 2682 'share_access_rights': {'key': 'properties.shareAccessRights', 'type': '[ShareAccessRight]'}, 2683 } 2684 2685 def __init__( 2686 self, 2687 **kwargs 2688 ): 2689 super(User, self).__init__(**kwargs) 2690 self.encrypted_password = kwargs.get('encrypted_password', None) 2691 self.share_access_rights = kwargs.get('share_access_rights', None) 2692 2693 2694class UserAccessRight(msrest.serialization.Model): 2695 """The mapping between a particular user and the access type on the SMB share. 2696 2697 All required parameters must be populated in order to send to Azure. 2698 2699 :param user_id: Required. User ID (already existing in the device). 2700 :type user_id: str 2701 :param access_type: Required. Type of access to be allowed for the user. Possible values 2702 include: "Change", "Read", "Custom". 2703 :type access_type: str or ~azure.mgmt.databoxedge.v2019_03_01.models.ShareAccessType 2704 """ 2705 2706 _validation = { 2707 'user_id': {'required': True}, 2708 'access_type': {'required': True}, 2709 } 2710 2711 _attribute_map = { 2712 'user_id': {'key': 'userId', 'type': 'str'}, 2713 'access_type': {'key': 'accessType', 'type': 'str'}, 2714 } 2715 2716 def __init__( 2717 self, 2718 **kwargs 2719 ): 2720 super(UserAccessRight, self).__init__(**kwargs) 2721 self.user_id = kwargs['user_id'] 2722 self.access_type = kwargs['access_type'] 2723 2724 2725class UserList(msrest.serialization.Model): 2726 """Collection of users. 2727 2728 Variables are only populated by the server, and will be ignored when sending a request. 2729 2730 :ivar value: The list of users. 2731 :vartype value: list[~azure.mgmt.databoxedge.v2019_03_01.models.User] 2732 :ivar next_link: Link to the next set of results. 2733 :vartype next_link: str 2734 """ 2735 2736 _validation = { 2737 'value': {'readonly': True}, 2738 'next_link': {'readonly': True}, 2739 } 2740 2741 _attribute_map = { 2742 'value': {'key': 'value', 'type': '[User]'}, 2743 'next_link': {'key': 'nextLink', 'type': 'str'}, 2744 } 2745 2746 def __init__( 2747 self, 2748 **kwargs 2749 ): 2750 super(UserList, self).__init__(**kwargs) 2751 self.value = None 2752 self.next_link = None 2753