@Test public void getExperimentStatisticsDailies() throws Exception { when(analytics.getExperimentStatisticsDailies(eq(experimentID), any(Parameters.class))) .thenReturn(experimentCumulativeStatistics); whenHttpHeader(experimentCumulativeStatistics); analyticsResource.getExperimentStatisticsDailies(experimentID, context, "foo"); verifyAuthorizedExperimentGetterWithExperimentID(); verifyHttpHeader(experimentCumulativeStatistics); }
@GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed public Response getExperimentStatisticsDailies( @PathParam("experimentID") @ApiParam(value = "Experiment ID") final Experiment.ID experimentID, @QueryParam("context") @DefaultValue("PROD") @ApiParam(value = "context for the experiment, eg QA, PROD") final Context context, @HeaderParam(AUTHORIZATION) @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true) final String authorizationHeader) { try { Parameters parameters = createParameters(context); return getExperimentStatisticsDailiesParameters(experimentID, parameters, authorizationHeader); } catch (Exception exception) { LOGGER.error("getExperimentStatisticsDailies failed for experimentID={}, context={} with error:", experimentID, context, exception); throw exception; } }
AnalyticsResource { @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed public Response getExperimentStatisticsDailies( @PathParam("experimentID") @ApiParam(value = "Experiment ID") final Experiment.ID experimentID, @QueryParam("context") @DefaultValue("PROD") @ApiParam(value = "context for the experiment, eg QA, PROD") final Context context, @HeaderParam(AUTHORIZATION) @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true) final String authorizationHeader) { try { Parameters parameters = createParameters(context); return getExperimentStatisticsDailiesParameters(experimentID, parameters, authorizationHeader); } catch (Exception exception) { LOGGER.error("getExperimentStatisticsDailies failed for experimentID={}, context={} with error:", experimentID, context, exception); throw exception; } } }
AnalyticsResource { @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed public Response getExperimentStatisticsDailies( @PathParam("experimentID") @ApiParam(value = "Experiment ID") final Experiment.ID experimentID, @QueryParam("context") @DefaultValue("PROD") @ApiParam(value = "context for the experiment, eg QA, PROD") final Context context, @HeaderParam(AUTHORIZATION) @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true) final String authorizationHeader) { try { Parameters parameters = createParameters(context); return getExperimentStatisticsDailiesParameters(experimentID, parameters, authorizationHeader); } catch (Exception exception) { LOGGER.error("getExperimentStatisticsDailies failed for experimentID={}, context={} with error:", experimentID, context, exception); throw exception; } } @Inject  AnalyticsResource(
            final Analytics analytics,
            final AuthorizedExperimentGetter authorizedExperimentGetter,
            final HttpHeader httpHeader,
            final PaginationHelper<ExperimentDetail> experimentDetailPaginationHelper,
            final ExperimentDetails experimentDetails,
            final Favorites favorites,
            final Authorization authorization); }
AnalyticsResource { @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed public Response getExperimentStatisticsDailies( @PathParam("experimentID") @ApiParam(value = "Experiment ID") final Experiment.ID experimentID, @QueryParam("context") @DefaultValue("PROD") @ApiParam(value = "context for the experiment, eg QA, PROD") final Context context, @HeaderParam(AUTHORIZATION) @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true) final String authorizationHeader) { try { Parameters parameters = createParameters(context); return getExperimentStatisticsDailiesParameters(experimentID, parameters, authorizationHeader); } catch (Exception exception) { LOGGER.error("getExperimentStatisticsDailies failed for experimentID={}, context={} with error:", experimentID, context, exception); throw exception; } } @Inject  AnalyticsResource(
            final Analytics analytics,
            final AuthorizedExperimentGetter authorizedExperimentGetter,
            final HttpHeader httpHeader,
            final PaginationHelper<ExperimentDetail> experimentDetailPaginationHelper,
            final ExperimentDetails experimentDetails,
            final Favorites favorites,
            final Authorization authorization); @GET @Produces(APPLICATION_JSON) @Path("/experiments") @ApiOperation(value = "Return details of all experiments with details " + "for the card view, with respect to the authorization", response = ExperimentDetail.class) @Timed Response getExperimentDetails(
            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @QueryParam("page")
            @DefaultValue(DEFAULT_PAGE)
            @ApiParam(name = "page", defaultValue = DEFAULT_PAGE, value = DOC_PAGE)
            final int page,

            @QueryParam("per_page")
            @DefaultValue(DEFAULT_PER_PAGE_CARDVIEW)
            @ApiParam(name = "per_page", defaultValue = DEFAULT_PER_PAGE_CARDVIEW, value = DOC_PER_PAGE)
            final int perPage,

            @QueryParam("filter")
            @DefaultValue("")
            @ApiParam(name = "filter", defaultValue = DEFAULT_FILTER, value = DOC_FILTER)
            final String filter,

            @QueryParam("sort")
            @DefaultValue("")
            @ApiParam(name = "sort", defaultValue = DEFAULT_SORT, value = DOC_SORT)
            final String sort,

            @QueryParam("timezone")
            @DefaultValue(DEFAULT_TIMEZONE)
            @ApiParam(name = "timezone", defaultValue = DEFAULT_TIMEZONE, value = DOC_TIMEZONE)
            final String timezoneOffset); @POST @Path("/experiments/{experimentID}/counts") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of the data collected for the experiment", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions.", response = ExperimentCounts.class) @Timed Response getExperimentCountsParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /counts API with default parameters", response = ExperimentCounts.class) @Timed Response getExperimentCounts(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/counts/dailies") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a daily summary of the data collected for the experiment", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. For each day, includes counts for that day and " + "cumulative counts, calculated from the beginning of the experiment.", response = ExperimentCumulativeCounts.class) @Timed Response getExperimentCountsDailiesParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/counts/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /counts/dailies API with default parameters", response = ExperimentCumulativeCounts.class) @Timed Response getExperimentCountsDailies(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/statistics") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of the data collected for the experiment with derived statistics", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. Also returns a number of statistics calculated " + "from the unique counts.", response = ExperimentStatistics.class) @Timed Response getExperimentStatisticsParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/statistics") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics API with default parameters", response = ExperimentStatistics.class) @Timed Response getExperimentStatistics(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/statistics/dailies") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a daily summary of the data collected for the experiment with derived statistics", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. For each day, includes counts for that day and " + "cumulative counts, calculated from the beginning of the experiment. Also returns " + "a number of statistics calculated from the unique counts.", response = ExperimentCumulativeStatistics.class) @Timed Response getExperimentStatisticsDailiesParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed Response getExperimentStatisticsDailies(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/assignments/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of assignments delivered for an experiment", response = AssignmentCounts.class) @Timed Response getAssignmentCounts(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/applications/{applicationName}/experiments/{experimentLabel}/assignments/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of assignments delivered for an experiment", response = AssignmentCounts.class) @Timed Response getAssignmentCountsByApp(
            @PathParam("applicationName")
            @ApiParam("Application Name")
            final Application.Name applicationName,

            @PathParam("experimentLabel")
            @ApiParam(value = "Experiment Label")
            final Experiment.Label experimentLabel,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); }
AnalyticsResource { @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed public Response getExperimentStatisticsDailies( @PathParam("experimentID") @ApiParam(value = "Experiment ID") final Experiment.ID experimentID, @QueryParam("context") @DefaultValue("PROD") @ApiParam(value = "context for the experiment, eg QA, PROD") final Context context, @HeaderParam(AUTHORIZATION) @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true) final String authorizationHeader) { try { Parameters parameters = createParameters(context); return getExperimentStatisticsDailiesParameters(experimentID, parameters, authorizationHeader); } catch (Exception exception) { LOGGER.error("getExperimentStatisticsDailies failed for experimentID={}, context={} with error:", experimentID, context, exception); throw exception; } } @Inject  AnalyticsResource(
            final Analytics analytics,
            final AuthorizedExperimentGetter authorizedExperimentGetter,
            final HttpHeader httpHeader,
            final PaginationHelper<ExperimentDetail> experimentDetailPaginationHelper,
            final ExperimentDetails experimentDetails,
            final Favorites favorites,
            final Authorization authorization); @GET @Produces(APPLICATION_JSON) @Path("/experiments") @ApiOperation(value = "Return details of all experiments with details " + "for the card view, with respect to the authorization", response = ExperimentDetail.class) @Timed Response getExperimentDetails(
            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @QueryParam("page")
            @DefaultValue(DEFAULT_PAGE)
            @ApiParam(name = "page", defaultValue = DEFAULT_PAGE, value = DOC_PAGE)
            final int page,

            @QueryParam("per_page")
            @DefaultValue(DEFAULT_PER_PAGE_CARDVIEW)
            @ApiParam(name = "per_page", defaultValue = DEFAULT_PER_PAGE_CARDVIEW, value = DOC_PER_PAGE)
            final int perPage,

            @QueryParam("filter")
            @DefaultValue("")
            @ApiParam(name = "filter", defaultValue = DEFAULT_FILTER, value = DOC_FILTER)
            final String filter,

            @QueryParam("sort")
            @DefaultValue("")
            @ApiParam(name = "sort", defaultValue = DEFAULT_SORT, value = DOC_SORT)
            final String sort,

            @QueryParam("timezone")
            @DefaultValue(DEFAULT_TIMEZONE)
            @ApiParam(name = "timezone", defaultValue = DEFAULT_TIMEZONE, value = DOC_TIMEZONE)
            final String timezoneOffset); @POST @Path("/experiments/{experimentID}/counts") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of the data collected for the experiment", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions.", response = ExperimentCounts.class) @Timed Response getExperimentCountsParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /counts API with default parameters", response = ExperimentCounts.class) @Timed Response getExperimentCounts(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/counts/dailies") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a daily summary of the data collected for the experiment", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. For each day, includes counts for that day and " + "cumulative counts, calculated from the beginning of the experiment.", response = ExperimentCumulativeCounts.class) @Timed Response getExperimentCountsDailiesParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/counts/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /counts/dailies API with default parameters", response = ExperimentCumulativeCounts.class) @Timed Response getExperimentCountsDailies(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/statistics") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of the data collected for the experiment with derived statistics", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. Also returns a number of statistics calculated " + "from the unique counts.", response = ExperimentStatistics.class) @Timed Response getExperimentStatisticsParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/statistics") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics API with default parameters", response = ExperimentStatistics.class) @Timed Response getExperimentStatistics(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @POST @Path("/experiments/{experimentID}/statistics/dailies") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a daily summary of the data collected for the experiment with derived statistics", notes = "Return unique and non-unique counts at the experiment, bucket, and action levels " + "for both actions and impressions. For each day, includes counts for that day and " + "cumulative counts, calculated from the beginning of the experiment. Also returns " + "a number of statistics calculated from the unique counts.", response = ExperimentCumulativeStatistics.class) @Timed Response getExperimentStatisticsDailiesParameters(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @ApiParam(required = true, defaultValue = DEFAULT_EMPTY)
            final Parameters parameters,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/statistics/dailies") @Produces(APPLICATION_JSON) @ApiOperation(value = "A wrapper for POST /statistics/dailies API with default parameters", response = ExperimentCumulativeStatistics.class) @Timed Response getExperimentStatisticsDailies(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg QA, PROD")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/experiments/{experimentID}/assignments/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of assignments delivered for an experiment", response = AssignmentCounts.class) @Timed Response getAssignmentCounts(
            @PathParam("experimentID")
            @ApiParam(value = "Experiment ID")
            final Experiment.ID experimentID,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader); @GET @Path("/applications/{applicationName}/experiments/{experimentLabel}/assignments/counts") @Produces(APPLICATION_JSON) @ApiOperation(value = "Return a summary of assignments delivered for an experiment", response = AssignmentCounts.class) @Timed Response getAssignmentCountsByApp(
            @PathParam("applicationName")
            @ApiParam("Application Name")
            final Application.Name applicationName,

            @PathParam("experimentLabel")
            @ApiParam(value = "Experiment Label")
            final Experiment.Label experimentLabel,

            @QueryParam("context")
            @DefaultValue("PROD")
            @ApiParam(value = "context for the experiment, eg \"QA\", \"PROD\"")
            final Context context,

            @HeaderParam(AUTHORIZATION)
            @ApiParam(value = EXAMPLE_AUTHORIZATION_HEADER, required = true)
            final String authorizationHeader);  }