code: public Observable<ServiceResponse<Void>> deleteWithServiceResponseAsync(String scope, String eventSubscriptionName) {
          if (scope == null) {
              throw new IllegalArgumentException("Parameter scope is required and cannot be null.");
          }
          if (eventSubscriptionName == null) {
              throw new IllegalArgumentException("Parameter eventSubscriptionName is required and cannot be null.");
          }
          if (this.client.apiVersion() == null) {
              throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
          }
          Observable<Response<ResponseBody>> observable = service.delete(scope, eventSubscriptionName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
          return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken<Void>() { }.getType());
      }
docs: Delete an event subscription.
  Delete an existing event subscription.
  
  @param scope The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.
  @param eventSubscriptionName Name of the event subscription
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable for the request