Skip to content

Commit

Permalink
feat(specs): add /schedule endpoint (generated)
Browse files Browse the repository at this point in the history
algolia/api-clients-automation#3350

Co-authored-by: algolia-bot <accounts+algolia-api-client-bot@algolia.com>
Co-authored-by: Fernando Beck <fe.beck25@gmail.com>
Co-authored-by: Pierre Millot <pierre.millot@algolia.com>
  • Loading branch information
3 people committed Aug 20, 2024
1 parent 1f34268 commit ed32815
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/** A/B Testing API The Algolia A/B Testing API lets you manage your Algolia A/B tests to optimize your search
* experience. ## Base URLs The base URLs for requests to the A/B testing API are: - `https://analytics.us.algolia.com`
* (alias: `https://analytics.algolia.com`) - `https://analytics.de.algolia.com` Use the URL that matches your
* [analytics region](https://dashboard.algolia.com/account/infrastructure/analytics). **All requests must use HTTPS.**
* ## Availability and authentication Access to the A/B testing API is available as part of the [Premium or Elevate
* plans](https://www.algolia.com/pricing). To authenticate your API requests, add these headers: -
* `x-algolia-application-id`. Your Algolia application ID. - `x-algolia-api-key`. An API key with the necessary
* permissions to make the request. The required access control list (ACL) to make a request is listed in each
* endpoint's reference. You can find your application ID and API key in the [Algolia
* dashboard](https://dashboard.algolia.com/account). ## Rate limits You can make up to **100 requests per minute per
* app** to the A/B testing API. The response includes headers with information about the limits. ## Parameters Query
* parameters must be [URL-encoded](https://developer.mozilla.org/en-US/docs/Glossary/Percent-encoding). Non-ASCII
* characters must be UTF-8 encoded. Plus characters (`+`) are interpreted as spaces. ## Response status and errors The
* A/B testing API returns JSON responses. Since JSON doesn't guarantee any specific ordering, don't rely on the order
* of attributes in the API response. Successful responses return a `2xx` status. Client errors return a `4xx` status.
* Server errors are indicated by a `5xx` status. Error responses have a `message` property with more information. ##
* Version The current version of the A/B Testing API is version 2, as indicated by the `/2/` in each endpoint's URL.
*
* The version of the OpenAPI document: 2.0.0
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech Do not edit the class manually.
*/
package algoliasearch.abtesting

/** ScheduleABTestResponse
*
* @param abTestScheduleID
* Unique scheduled A/B test identifier.
*/
case class ScheduleABTestResponse(
abTestScheduleID: Int
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/** A/B Testing API The Algolia A/B Testing API lets you manage your Algolia A/B tests to optimize your search
* experience. ## Base URLs The base URLs for requests to the A/B testing API are: - `https://analytics.us.algolia.com`
* (alias: `https://analytics.algolia.com`) - `https://analytics.de.algolia.com` Use the URL that matches your
* [analytics region](https://dashboard.algolia.com/account/infrastructure/analytics). **All requests must use HTTPS.**
* ## Availability and authentication Access to the A/B testing API is available as part of the [Premium or Elevate
* plans](https://www.algolia.com/pricing). To authenticate your API requests, add these headers: -
* `x-algolia-application-id`. Your Algolia application ID. - `x-algolia-api-key`. An API key with the necessary
* permissions to make the request. The required access control list (ACL) to make a request is listed in each
* endpoint's reference. You can find your application ID and API key in the [Algolia
* dashboard](https://dashboard.algolia.com/account). ## Rate limits You can make up to **100 requests per minute per
* app** to the A/B testing API. The response includes headers with information about the limits. ## Parameters Query
* parameters must be [URL-encoded](https://developer.mozilla.org/en-US/docs/Glossary/Percent-encoding). Non-ASCII
* characters must be UTF-8 encoded. Plus characters (`+`) are interpreted as spaces. ## Response status and errors The
* A/B testing API returns JSON responses. Since JSON doesn't guarantee any specific ordering, don't rely on the order
* of attributes in the API response. Successful responses return a `2xx` status. Client errors return a `4xx` status.
* Server errors are indicated by a `5xx` status. Error responses have a `message` property with more information. ##
* Version The current version of the A/B Testing API is version 2, as indicated by the `/2/` in each endpoint's URL.
*
* The version of the OpenAPI document: 2.0.0
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech Do not edit the class manually.
*/
package algoliasearch.abtesting

/** ScheduleABTestsRequest
*
* @param name
* A/B test name.
* @param variants
* A/B test variants.
* @param scheduledAt
* Date and time when the A/B test is scheduled to start, in RFC 3339 format.
* @param endAt
* End date and time of the A/B test, in RFC 3339 format.
*/
case class ScheduleABTestsRequest(
name: String,
variants: Seq[AddABTestsVariant],
scheduledAt: String,
endAt: String
)
24 changes: 24 additions & 0 deletions src/main/scala/algoliasearch/api/AbtestingClient.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import algoliasearch.abtesting.ABTestResponse
import algoliasearch.abtesting.AddABTestsRequest
import algoliasearch.abtesting.ErrorBase
import algoliasearch.abtesting.ListABTestsResponse
import algoliasearch.abtesting.ScheduleABTestResponse
import algoliasearch.abtesting.ScheduleABTestsRequest
import algoliasearch.abtesting._
import algoliasearch.ApiClient
import algoliasearch.api.AbtestingClient.hosts
Expand Down Expand Up @@ -261,6 +263,28 @@ class AbtestingClient(
execute[ListABTestsResponse](request, requestOptions)
}

/** Schedule an A/B test to be started at a later time.
*
* Required API Key ACLs:
* - editSettings
*/
def scheduleABTest(scheduleABTestsRequest: ScheduleABTestsRequest, requestOptions: Option[RequestOptions] = None)(
implicit ec: ExecutionContext
): Future[ScheduleABTestResponse] = Future {
requireNotNull(
scheduleABTestsRequest,
"Parameter `scheduleABTestsRequest` is required when calling `scheduleABTest`."
)

val request = HttpRequest
.builder()
.withMethod("POST")
.withPath(s"/2/abtests/schedule")
.withBody(scheduleABTestsRequest)
.build()
execute[ScheduleABTestResponse](request, requestOptions)
}

/** Stops an A/B test by its ID. You can't restart stopped A/B tests.
*
* Required API Key ACLs:
Expand Down

0 comments on commit ed32815

Please sign in to comment.