All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gobblin.restli.throttling.PermitsBuilders Maven / Gradle / Ivy


package gobblin.restli.throttling;

import java.util.EnumSet;
import java.util.HashMap;
import javax.annotation.Generated;
import com.linkedin.data.template.DynamicRecordMetadata;
import com.linkedin.restli.client.OptionsRequestBuilder;
import com.linkedin.restli.client.RestliRequestOptions;
import com.linkedin.restli.common.ComplexResourceKey;
import com.linkedin.restli.common.EmptyRecord;
import com.linkedin.restli.common.ResourceMethod;
import com.linkedin.restli.common.ResourceSpec;
import com.linkedin.restli.common.ResourceSpecImpl;
import com.linkedin.restli.internal.common.URIParamUtils;


/**
 * Restli resource for allocating permits through Rest calls. Simply calls a {@link Limiter} in the server configured
 *  through {@link SharedResourcesBroker}.
 * 
 * generated from: gobblin.restli.throttling.LimiterServerResource
 * 
 * @deprecated
 *     This format of request builder is obsolete. Please use {@link gobblin.restli.throttling.PermitsRequestBuilders} instead.
 */
@Generated(value = "com.linkedin.pegasus.generator.JavaCodeUtil", comments = "Rest.li Request Builder. Generated from /Users/ibuenros/repos/gobblin/gobblin-restli/gobblin-throttling-service/gobblin-throttling-service-api/src/main/idl/gobblin.restli.throttling.permits.restspec.json.", date = "Tue May 09 09:51:52 PDT 2017")
@Deprecated
public class PermitsBuilders {

    private final String _baseUriTemplate;
    private RestliRequestOptions _requestOptions;
    private final static String ORIGINAL_RESOURCE_PATH = "permits";
    private final static ResourceSpec _resourceSpec;

    static {
        HashMap requestMetadataMap = new HashMap();
        HashMap responseMetadataMap = new HashMap();
        HashMap keyParts = new HashMap();
        _resourceSpec = new ResourceSpecImpl(EnumSet.of(ResourceMethod.GET), requestMetadataMap, responseMetadataMap, ComplexResourceKey.class, PermitRequest.class, EmptyRecord.class, PermitAllocation.class, keyParts);
    }

    public PermitsBuilders() {
        this(RestliRequestOptions.DEFAULT_OPTIONS);
    }

    public PermitsBuilders(RestliRequestOptions requestOptions) {
        _baseUriTemplate = ORIGINAL_RESOURCE_PATH;
        _requestOptions = assignRequestOptions(requestOptions);
    }

    public PermitsBuilders(String primaryResourceName) {
        this(primaryResourceName, RestliRequestOptions.DEFAULT_OPTIONS);
    }

    public PermitsBuilders(String primaryResourceName, RestliRequestOptions requestOptions) {
        _baseUriTemplate = primaryResourceName;
        _requestOptions = assignRequestOptions(requestOptions);
    }

    private String getBaseUriTemplate() {
        return _baseUriTemplate;
    }

    public RestliRequestOptions getRequestOptions() {
        return _requestOptions;
    }

    public String[] getPathComponents() {
        return URIParamUtils.extractPathComponentsFromUriTemplate(_baseUriTemplate);
    }

    private static RestliRequestOptions assignRequestOptions(RestliRequestOptions requestOptions) {
        if (requestOptions == null) {
            return RestliRequestOptions.DEFAULT_OPTIONS;
        } else {
            return requestOptions;
        }
    }

    public static String getPrimaryResource() {
        return ORIGINAL_RESOURCE_PATH;
    }

    public OptionsRequestBuilder options() {
        return new OptionsRequestBuilder(getBaseUriTemplate(), getRequestOptions());
    }

    /**
     * Request permits from the limiter server. The returned {@link PermitAllocation} specifies the number of permits
     *  that the client can use.
     * 
     * @return
     *     builder for the resource method
     */
    public PermitsGetBuilder get() {
        return new PermitsGetBuilder(getBaseUriTemplate(), _resourceSpec, getRequestOptions());
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy