code: public Mono<Response<ConfigurationSetting>> setSetting(ConfigurationSetting setting) {
          // Validate that setting and key is not null. The key is used in the service URL so it cannot be null.
          validateSetting(setting);
  
          // This service method call is similar to addSetting except it will create or update a configuration setting.
          // If the user provides an etag value, it is passed in as If-Match = "{etag value}". If the current value in the
          // service has a matching etag then it matches, then its value is updated with what the user passed in.
          // Otherwise, the service throws an exception because the current configuration value was updated and we have an
          // old value locally.
          // If no etag value was passed in, then the value is always added or updated.
          return service.setKey(serviceEndpoint, setting.key(), setting.label(), setting, getETagValue(setting.etag()), null);
      }
docs: Creates or updates a configuration value in the service. Partial updates are not supported and the entire
  configuration setting is updated.
  
  If {@link ConfigurationSetting#etag() etag} is specified, the configuration value is updated if the current
  setting's etag matches. If the etag's value is equal to the wildcard character ({@code "*"}), the setting
  will always be updated.
  
  @param setting The configuration setting to create or update.
  @return The {@link ConfigurationSetting} that was created or updated, or {@code null}, if the key is an invalid
  value, the setting is locked, or an etag was provided but does not match the service's current etag value (which
  will also throw ServiceRequestException described below).
  @throws NullPointerException If {@code setting} is {@code null}.
  @throws IllegalArgumentException If {@link ConfigurationSetting#key() key} is {@code null}.
  @throws ServiceRequestException If the {@link ConfigurationSetting#etag() etag} was specified, is not the
  wildcard character, and the current configuration value's etag does not match. If the
  setting exists and is locked, or {@link ConfigurationSetting#key() key} is an empty string.