docs: public Observable<ServiceResponseWithHeaders<Void, RunbookDraftPublishHeaders>> publishWithServiceResponseAsync(String resourceGroupName, String automationAccountName, String runbookName) {
          if (this.client.subscriptionId() == null) {
              throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
          }
          if (resourceGroupName == null) {
              throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
          }
          if (automationAccountName == null) {
              throw new IllegalArgumentException("Parameter automationAccountName is required and cannot be null.");
          }
          if (runbookName == null) {
              throw new IllegalArgumentException("Parameter runbookName is required and cannot be null.");
          }
          final String apiVersion = "2015-10-31";
          Observable<Response<ResponseBody>> observable = service.publish(this.client.subscriptionId(), resourceGroupName, automationAccountName, runbookName, apiVersion, this.client.acceptLanguage(), this.client.userAgent());
          return client.getAzureClient().getPostOrDeleteResultWithHeadersAsync(observable, new TypeToken<Void>() { }.getType(), RunbookDraftPublishHeaders.class);
      }