public Mono<Response<ConfigurationSetting>> deleteSetting(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);

        return service.delete(serviceEndpoint, setting.key(), setting.label(), getETagValue(setting.etag()), null);
    }
public Mono < Response < ConfigurationSetting > > deleteSetting ( ConfigurationSetting setting ) { validateSetting ( setting ) ; return service . delete ( serviceEndpoint , setting . key ( ) , setting . label ( ) , getETagValue ( setting . etag ( ) ) , null ) ; }
Deletes the {@link ConfigurationSetting} with a matching key, along with the given label and etag.

If {@link ConfigurationSetting#etag() etag} is specified and is not the wildcard character ({@code "*"}),
then the setting is <b>only</b> deleted if the etag matches the current etag; this means that no one has updated
the ConfigurationSetting yet.

@param setting The ConfigurationSetting to delete.
@return The deleted ConfigurationSetting or {@code null} if didn't exist. {@code null} is also returned if
the {@code key} is an invalid value or {@link ConfigurationSetting#etag() etag} is set but does not match the
current etag (which will also throw ServiceRequestException described below).
@throws IllegalArgumentException If {@link ConfigurationSetting#key() key} is {@code null}.
@throws NullPointerException When {@code setting} is {@code null}.
@throws ServiceRequestException If {@code key} is an empty string or {@link ConfigurationSetting#etag() etag} is
specified, not the wildcard character, and does not match the current etag value.