public override void ExecuteCmdlet() { if (ShouldProcess(Name, Properties.Resources.UpdateIotHub)) { IotHubDescription iotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name); switch (ParameterSetName) { case UpdateSkuParameterSet: var psIotHubSku = new PSIotHubSkuInfo() { Name = this.SkuName, Capacity = this.Units }; iotHubDescription.Sku = IotHubUtils.ToIotHubSku(psIotHubSku); break; case UpdateEventHubEndpointPropertiesParameterSet: iotHubDescription.Properties.EventHubEndpoints["events"].RetentionTimeInDays = this.EventHubRetentionTimeInDays; iotHubDescription.Properties.EventHubEndpoints["operationsMonitoringEvents"].RetentionTimeInDays = this.EventHubRetentionTimeInDays; break; case UpdateFileUploadPropertiesParameterSet: iotHubDescription.Properties.EnableFileUploadNotifications = this.EnableFileUploadNotifications; if (this.FileUploadStorageConnectionString != null) { iotHubDescription.Properties.StorageEndpoints["$default"].ConnectionString = this.FileUploadStorageConnectionString; } if (this.FileUploadContainerName != null) { iotHubDescription.Properties.StorageEndpoints["$default"].ContainerName = this.FileUploadContainerName; } if (this.FileUploadSasUriTtl != null) { iotHubDescription.Properties.StorageEndpoints["$default"].SasTtlAsIso8601 = this.FileUploadSasUriTtl; } if (this.FileUploadNotificationTtl != null) { iotHubDescription.Properties.MessagingEndpoints["fileNotifications"].TtlAsIso8601 = this.FileUploadNotificationTtl; } if (this.FileUploadNotificationMaxDeliveryCount != null) { iotHubDescription.Properties.MessagingEndpoints["fileNotifications"].MaxDeliveryCount = (int)this.FileUploadNotificationMaxDeliveryCount; } break; case UpdateCloudToDevicePropertiesParameterSet: if (this.CloudToDevice != null) { iotHubDescription.Properties.CloudToDevice = IotHubUtils.ToCloudToDeviceProperties(this.CloudToDevice); } break; case UpdateOperationsMonitoringPropertiesParameterSet: if (this.OperationsMonitoringProperties != null) { iotHubDescription.Properties.OperationsMonitoringProperties = IotHubUtils.ToOperationsMonitoringProperties(this.OperationsMonitoringProperties); } break; case UpdateRoutingPropertiesParameterSet: if (this.RoutingProperties != null) { iotHubDescription.Properties.Routing = IotHubUtils.ToRoutingProperties(this.RoutingProperties); } break; case UpdateRoutePropertiesParameterSet: if (this.Routes != null) { iotHubDescription.Properties.Routing.Routes = IotHubUtils.ToRouteProperties(this.Routes); } break; case UpdateFallbackRoutePropertyParameterSet: if (this.FallbackRoute != null) { iotHubDescription.Properties.Routing.FallbackRoute = IotHubUtils.ToFallbackRouteProperty(this.FallbackRoute); } break; default: throw new ArgumentException("BadParameterSetName"); } this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iotHubDescription); IotHubDescription updatedIotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name); this.WriteObject(IotHubUtils.ToPSIotHub(updatedIotHubDescription), false); } }