code: public Observable<IotHubDescriptionInner> createOrUpdateAsync(String resourceGroupName, String resourceName, IotHubDescriptionInner iotHubDescription) {
          return createOrUpdateWithServiceResponseAsync(resourceGroupName, resourceName, iotHubDescription).map(new Func1<ServiceResponse<IotHubDescriptionInner>, IotHubDescriptionInner>() {
              @Override
              public IotHubDescriptionInner call(ServiceResponse<IotHubDescriptionInner> response) {
                  return response.body();
              }
          });
      }
docs: Create or update the metadata of an IoT hub.
  Create or update the metadata of an Iot hub. The usual pattern to modify a property is to retrieve the IoT hub metadata and security metadata, and then combine them with the modified values in a new body to update the IoT hub.
  
  @param resourceGroupName The name of the resource group that contains the IoT hub.
  @param resourceName The name of the IoT hub.
  @param iotHubDescription The IoT hub metadata and security metadata.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable for the request