code: public Observable<VirtualMachineScaleSetExtensionInner> createOrUpdateAsync(String resourceGroupName, String vmScaleSetName, String vmssExtensionName, VirtualMachineScaleSetExtensionInner extensionParameters) {
          return createOrUpdateWithServiceResponseAsync(resourceGroupName, vmScaleSetName, vmssExtensionName, extensionParameters).map(new Func1<ServiceResponse<VirtualMachineScaleSetExtensionInner>, VirtualMachineScaleSetExtensionInner>() {
              @Override
              public VirtualMachineScaleSetExtensionInner call(ServiceResponse<VirtualMachineScaleSetExtensionInner> response) {
                  return response.body();
              }
          });
      }
docs: The operation to create or update an extension.
  
  @param resourceGroupName The name of the resource group.
  @param vmScaleSetName The name of the VM scale set where the extension should be create or updated.
  @param vmssExtensionName The name of the VM scale set extension.
  @param extensionParameters Parameters supplied to the Create VM scale set Extension operation.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable for the request