Pravega Controller APIs¶
Overview¶
List of admin REST APIs for the pravega controller service.
Version information¶
Version : 0.0.1
License information¶
License : Apache 2.0
License URL : http://www.apache.org/licenses/LICENSE-2.0
Terms of service : null
URI scheme¶
BasePath : /v1
Schemes : HTTP
Tags¶
- ReaderGroups : Reader group related APIs
- Scopes : Scope related APIs
- Streams : Stream related APIs
Paths¶
POST /scopes¶
Description¶
Create a new scope
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Body | CreateScopeRequest required |
The scope configuration | CreateScopeRequest |
| Name | Description | Schema |
|---|---|---|
| scopeName optional |
Example : "string" |
string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 201 | Successfully created the scope | ScopeProperty |
| 409 | Scope with the given name already exists | No Content |
| 500 | Internal server error while creating a scope | No Content |
Consumes¶
application/json
Produces¶
application/json
Tags¶
- Scopes
Example HTTP request¶
Request path¶
/scopes
Request body¶
{ "scopeName" : "string" }
Example HTTP response¶
Response 201¶
{ "scopeName" : "string" }
GET /scopes¶
Description¶
List all available scopes in pravega
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | List of currently available scopes | ScopesList |
| 500 | Internal server error while fetching list of scopes | No Content |
Produces¶
application/json
Tags¶
- Scopes
Example HTTP request¶
Request path¶
/scopes
Example HTTP response¶
Response 200¶
{ "scopes" : [ { "scopeName" : "string" } ] }
GET /scopes/{scopeName}¶
Description¶
Retrieve details of an existing scope
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Successfully retrieved the scope details | ScopeProperty |
| 404 | Scope with the given name not found | No Content |
| 500 | Internal server error while fetching scope details | No Content |
Produces¶
application/json
Tags¶
- Scopes
Example HTTP request¶
Request path¶
/scopes/string
Example HTTP response¶
Response 200¶
{ "scopeName" : "string" }
DELETE /scopes/{scopeName}¶
Description¶
Delete a scope
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 204 | Successfully deleted the scope | No Content |
| 404 | Scope not found | No Content |
| 412 | Cannot delete scope since it has non-empty list of streams | No Content |
| 500 | Internal server error while deleting a scope | No Content |
Tags¶
- Scopes
Example HTTP request¶
Request path¶
/scopes/string
GET /scopes/{scopeName}/readergroups¶
Description¶
List reader groups within the given scope
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | List of all reader groups configured for the given scope | ReaderGroupsList |
| 404 | Scope not found | No Content |
| 500 | Internal server error while fetching the list of reader groups for the given scope | No Content |
Produces¶
application/json
Tags¶
- ReaderGroups
Example HTTP request¶
Request path¶
/scopes/string/readergroups
Example HTTP response¶
Response 200¶
{ "readerGroups" : [ "object" ] }
GET /scopes/{scopeName}/readergroups/{readerGroupName}¶
Description¶
Fetch the properties of an existing reader group
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | readerGroupName required |
Reader group name | string |
| Path | scopeName required |
Scope name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Found reader group properties | ReaderGroupProperty |
| 404 | Scope or reader group with given name not found | No Content |
| 500 | Internal server error while fetching reader group details | No Content |
Produces¶
application/json
Tags¶
- ReaderGroups
Example HTTP request¶
Request path¶
/scopes/string/readergroups/string
Example HTTP response¶
Response 200¶
{ "scopeName" : "string", "readerGroupName" : "string", "streamList" : [ "string" ], "onlineReaderIds" : [ "string" ] }
POST /scopes/{scopeName}/streams¶
Description¶
Create a new stream
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Body | CreateStreamRequest required |
The stream configuration | CreateStreamRequest |
| Name | Description | Schema |
|---|---|---|
| retentionPolicy optional |
Example : "[retentionconfig](#retentionconfig)" |
RetentionConfig |
| scalingPolicy optional |
Example : "[scalingconfig](#scalingconfig)" |
ScalingConfig |
| streamName optional |
Example : "string" |
string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 201 | Successfully created the stream with the given configuration | StreamProperty |
| 404 | Scope not found | No Content |
| 409 | Stream with given name already exists | No Content |
| 500 | Internal server error while creating a stream | No Content |
Consumes¶
application/json
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams
Request body¶
{ "streamName" : "string", "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } }
Example HTTP response¶
Response 201¶
{ "scopeName" : "string", "streamName" : "string", "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } }
GET /scopes/{scopeName}/streams¶
Description¶
List streams within the given scope
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Query | showInternalStreams optional |
Optional flag whether to display system created streams. If not specified only user created streams will be returned | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | List of all streams configured for the given scope | StreamsList |
| 404 | Scope not found | No Content |
| 500 | Internal server error while fetching the list of streams for the given scope | No Content |
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams
Example HTTP response¶
Response 200¶
{ "streams" : [ { "scopeName" : "string", "streamName" : "string", "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } } ] }
GET /scopes/{scopeName}/streams/{streamName}¶
Description¶
Fetch the properties of an existing stream
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Path | streamName required |
Stream name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Found stream properties | StreamProperty |
| 404 | Scope or stream with given name not found | No Content |
| 500 | Internal server error while fetching stream details | No Content |
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams/string
Example HTTP response¶
Response 200¶
{ "scopeName" : "string", "streamName" : "string", "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } }
PUT /scopes/{scopeName}/streams/{streamName}¶
Description¶
Update configuration of an existing stream
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Path | streamName required |
Stream name | string |
| Body | UpdateStreamRequest required |
The new stream configuration | UpdateStreamRequest |
| Name | Description | Schema |
|---|---|---|
| retentionPolicy optional |
Example : "[retentionconfig](#retentionconfig)" |
RetentionConfig |
| scalingPolicy optional |
Example : "[scalingconfig](#scalingconfig)" |
ScalingConfig |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Successfully updated the stream configuration | StreamProperty |
| 404 | Scope or stream with given name not found | No Content |
| 500 | Internal server error while updating the stream | No Content |
Consumes¶
application/json
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams/string
Request body¶
{ "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } }
Example HTTP response¶
Response 200¶
{ "scopeName" : "string", "streamName" : "string", "scalingPolicy" : { "type" : "string", "targetRate" : 0, "scaleFactor" : 0, "minSegments" : 0 }, "retentionPolicy" : { "type" : "string", "value" : 0 } }
DELETE /scopes/{scopeName}/streams/{streamName}¶
Description¶
Delete a stream
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Path | streamName required |
Stream name | string |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 204 | Successfully deleted the stream | No Content |
| 404 | Stream not found | No Content |
| 412 | Cannot delete stream since it is not sealed | No Content |
| 500 | Internal server error while deleting the stream | No Content |
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams/string
GET /scopes/{scopeName}/streams/{streamName}/scaling-events¶
Description¶
Get scaling events for a given datetime period.
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Path | streamName required |
Stream name | string |
| Query | from required |
Parameter to display scaling events from that particular datetime. Input should be milliseconds from Jan 1 1970. | integer (int64) |
| Query | to required |
Parameter to display scaling events to that particular datetime. Input should be milliseconds from Jan 1 1970. | integer (int64) |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Successfully fetched list of scaling events. | ScalingEventList |
| 404 | Scope/Stream not found. | No Content |
| 500 | Internal Server error while fetching scaling events. | No Content |
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams/string/scaling-events?from=0&to=0
Example HTTP response¶
Response 200¶
{ "scalingEvents" : [ { "timestamp" : 0, "segmentList" : [ { "number" : 0, "startTime" : 0, "keyStart" : 0, "keyEnd" : 0 } ], "splits" : 0, "merges" : 0 } ] }
PUT /scopes/{scopeName}/streams/{streamName}/state¶
Description¶
Updates the current state of the stream
Parameters¶
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | scopeName required |
Scope name | string |
| Path | streamName required |
Stream name | string |
| Body | UpdateStreamStateRequest required |
The state info to be updated | StreamState |
Responses¶
| HTTP Code | Description | Schema |
|---|---|---|
| 200 | Successfully updated the stream state | StreamState |
| 404 | Scope or stream with given name not found | No Content |
| 500 | Internal server error while updating the stream state | No Content |
Consumes¶
application/json
Produces¶
application/json
Tags¶
- Streams
Example HTTP request¶
Request path¶
/scopes/string/streams/string/state
Request body¶
{ "streamState" : "string" }
Example HTTP response¶
Response 200¶
{ "streamState" : "string" }
Definitions¶
ReaderGroupProperty¶
| Name | Description | Schema |
|---|---|---|
| onlineReaderIds optional |
Example : [ "string" ] |
< string > array |
| readerGroupName optional |
Example : "string" |
string |
| scopeName optional |
Example : "string" |
string |
| streamList optional |
Example : [ "string" ] |
< string > array |
ReaderGroupsList¶
| Name | Description | Schema |
|---|---|---|
| readerGroups optional |
Example : [ "object" ] |
< readerGroups > array |
| Name | Description | Schema |
|---|---|---|
| readerGroupName optional |
Example : "string" |
string |
RetentionConfig¶
| Name | Description | Schema |
|---|---|---|
| type optional |
Example : "string" |
enum (LIMITED_DAYS, LIMITED_SIZE_MB) |
| value optional |
Example : 0 |
integer (int64) |
ScaleMetadata¶
| Name | Description | Schema |
|---|---|---|
| merges optional |
Example : 0 |
integer (int64) |
| segmentList optional |
Example : [ "[segment](#segment)" ] |
< Segment > array |
| splits optional |
Example : 0 |
integer (int64) |
| timestamp optional |
Example : 0 |
integer (int64) |
ScalingConfig¶
| Name | Description | Schema |
|---|---|---|
| minSegments optional |
Example : 0 |
integer (int32) |
| scaleFactor optional |
Example : 0 |
integer (int32) |
| targetRate optional |
Example : 0 |
integer (int32) |
| type optional |
Example : "string" |
enum (FIXED_NUM_SEGMENTS, BY_RATE_IN_KBYTES_PER_SEC, BY_RATE_IN_EVENTS_PER_SEC) |
ScalingEventList¶
| Name | Description | Schema |
|---|---|---|
| scalingEvents optional |
Example : [ "[scalemetadata](#scalemetadata)" ] |
< ScaleMetadata > array |
ScopeProperty¶
| Name | Description | Schema |
|---|---|---|
| scopeName optional |
Example : "string" |
string |
ScopesList¶
| Name | Description | Schema |
|---|---|---|
| scopes optional |
Example : [ "[scopeproperty](#scopeproperty)" ] |
< ScopeProperty > array |
Segment¶
| Name | Description | Schema |
|---|---|---|
| keyEnd optional |
Example : 0 |
integer (double) |
| keyStart optional |
Example : 0 |
integer (double) |
| number optional |
Example : 0 |
integer (int32) |
| startTime optional |
Example : 0 |
integer (int64) |
StreamProperty¶
| Name | Description | Schema |
|---|---|---|
| retentionPolicy optional |
Example : "[retentionconfig](#retentionconfig)" |
RetentionConfig |
| scalingPolicy optional |
Example : "[scalingconfig](#scalingconfig)" |
ScalingConfig |
| scopeName optional |
Example : "string" |
string |
| streamName optional |
Example : "string" |
string |
StreamState¶
| Name | Description | Schema |
|---|---|---|
| streamState optional |
Example : "string" |
enum (SEALED) |
StreamsList¶
| Name | Description | Schema |
|---|---|---|
| streams optional |
Example : [ "[streamproperty](#streamproperty)" ] |
< StreamProperty > array |