public Mono<Response<ConfigurationSetting>> addSetting(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 setSetting except we're passing If-Not-Match = "*". If the service
        // finds any existing configuration settings, then its e-tag will match and the service will return an error.
        return service.setKey(serviceEndpoint, setting.key(), setting.label(), setting, null, getETagValue(ETAG_ANY));
    }
public Mono < Response < ConfigurationSetting > > addSetting ( ConfigurationSetting setting ) { validateSetting ( setting ) ; return service . setKey ( serviceEndpoint , setting . key ( ) , setting . label ( ) , setting , null , getETagValue ( ETAG_ANY ) ) ; }
Adds a configuration value in the service if that key and label does not exist. The label value of the
ConfigurationSetting is optional.

@param setting The setting to add to the configuration service.
@return The {@link ConfigurationSetting} that was created, or {@code null}, if a key collision occurs or the key
is an invalid 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 a ConfigurationSetting with the same key and label exists. Or,
{@link ConfigurationSetting#key() key} is an empty string.