Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions content/operate/rc/api/get-started/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ To use the keys to authenticate and authorize your request, include the keys wit

## Enable the API

The API is disabled on all accounts by default. You must [enable the API]({{< relref "/operate/rc/api/get-started/enable-the-api.md" >}}) before you can use it.
The API is disabled on all accounts by default. You must [enable the API]({{< relref "/operate/rc/api/get-started/enable-the-api" >}}) before you can use it.

## Account key

Expand All @@ -44,20 +44,20 @@ If you need to change or delete your account key, please [contact support](https

## User key

The user key is a personal key that belongs to a specific user having the **owner** role. User keys are assigned owners when they're created. Keys cannot be assigned to users that aren't owners. Keys can belong to only one owner; however, an owner may have multiple keys.
The user key is a personal key that belongs to a specific user having the **Owner**, **Viewer**, or **Logs viewer** role. User keys are assigned to users when they're created. Keys can belong to only one user; however, a user may have multiple keys.

You can view keys or copy their values _only_ during the [creation process]({{< relref "/operate/rc/api/get-started/manage-api-keys.md" >}}).
You can view keys or copy their values _only_ during the [creation process]({{< relref "/operate/rc/api/get-started/manage-api-keys" >}}).

{{< note >}}
User keys are personal secrets. Do not share them.
{{< /note >}}

Individual owners can [generate multiple user keys]({{< relref "/operate/rc/api/get-started/manage-api-keys.md" >}})
Individual owners can [generate multiple user keys]({{< relref "/operate/rc/api/get-started/manage-api-keys" >}})
for themselves, for separate apps, or for other owners, viewers, or log viewers within the same account.

Use key names to uniquely associate specific API requests to individual users or apps.

Doing so lets you [audit API requests]({{< relref "/operate/rc/api/examples/audit-system-logs.md" >}}) using the system log, which tracks the key used to authenticate each request.
Doing so lets you [audit API requests]({{< relref "/operate/rc/api/examples/audit-system-logs" >}}) using the system log, which tracks the key used to authenticate each request.

## Authentication using API keys

Expand All @@ -79,5 +79,6 @@ An API request successfully authenticates when:

To learn more, see:

- [Manage API keys]({{< relref "/operate/rc/api/get-started/manage-api-keys.md" >}})
- [Use the API]({{< relref "/operate/rc/api/get-started/use-rest-api.md" >}})
- [Manage API keys]({{< relref "/operate/rc/api/get-started/manage-api-keys" >}})
- [Use the API]({{< relref "/operate/rc/api/get-started/use-rest-api" >}})
- [Full API reference]({{< relref "/operate/rc/api/api-reference" >}})
6 changes: 3 additions & 3 deletions content/operate/rc/api/get-started/enable-the-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ description: Use the Redis Cloud dashboard to enable the REST API.
weight: 10
---

If you have a Redis Cloud subscription, you can use a REST API to manage your subscription programmatically.
If you have a Redis Cloud account, you can use a REST API to manage your subscriptions and databases programmatically.

For security reasons, the Redis Cloud API is disabled by default.
For security reasons, the Redis Cloud API is inactive by default.

To enable the API:

Expand All @@ -29,7 +29,7 @@ To enable the API:

{{<image filename="images/rc/button-access-management-enable-api.png" alt="Use the **Enable API** button to enable the REST API for your account." >}}

To authenticate REST API calls, you need to combine the API account key with an [API user key]({{< relref "/operate/rc/api/get-started/manage-api-keys#api-user-keys" >}}) to make API calls.
To authenticate REST API calls, you need to use both the API account key and an [API user key]({{< relref "/operate/rc/api/get-started/manage-api-keys#api-user-keys" >}}) to make API calls.

Only account owners can see the access key in the account settings and give API access to other users.

Expand Down
2 changes: 1 addition & 1 deletion content/operate/rc/api/get-started/manage-api-keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ The key name:
- Must be between 10 and 50 characters long
- Can contain alphanumeric characters, hyphens, and underscores. Spaces are not allowed.

The user name must have an owner, viewer, or logs viewer role.
The selected user must have an owner, viewer, or logs viewer role.

Select **Create** to create the new key.

Expand Down
21 changes: 6 additions & 15 deletions content/operate/rc/api/get-started/manage-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ After you request an asynchronous operation, the operation returns a `taskId` th

Tasks are part of the API [processing and provisioning lifecycle]({{< relref "/operate/rc/api/get-started/process-lifecycle" >}}).

### Task information
## Task information

When you query a task of an asynchronous API operation,
the response to the request includes the task status and additional information about the task:
When you request an asynchronous operation, the response to the request includes the task status and additional information about the task:

```json
{
Expand Down Expand Up @@ -57,19 +56,15 @@ Where:
- A link to itself
- Additional links based on the context of the response

### Task status updates
## Task status updates

With the task ID, you can query the task status for updates and progress information.
The response in the above example shows a URL with the title `getTaskStatusUpdates`.
The URL in the `href` property returns updates for the specified task.

This request returns the updated status of the task identifier:
Use [`GET /v1/tasks/{taskId}`]({{< relref "/operate/rc/api/api-reference#tag/Tasks/operation/getTaskById" >}}) to check the task status.

```bash
GET "https://[host]/v1/tasks/<taskId>"
```

The response to the `getTaskStatusUpdates` request shows:
This endpoint returns information about the queried task.

```json
{
Expand Down Expand Up @@ -104,12 +99,8 @@ This response example shows:

### Tasks list

You can use the API operation `GET /tasks` to list the recently submitted and completed tasks for the current account.
You can use the API operation [`GET /tasks`]({{< relref "/operate/rc/api/api-reference#tag/Tasks/operation/getAllTasks" >}}) to list the recently submitted and completed tasks for the current account.

This API operation returns a list of tasks for the current account, sorted by most recent status update.

```bash
GET "https://$HOST/tasks"
```

The result returns all the tasks submitted during the past 10 days.
26 changes: 6 additions & 20 deletions content/operate/rc/api/get-started/process-lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ description: API requests follow specific lifecycle phases and states, based on
linkTitle: API request lifecycle
weight: 60
---
All Redis Cloud [subscriptions]({{< relref "/operate/rc/subscriptions/" >}}) can leverage a RESTful API that permits operations against a variety of resources, including servers, services, and related infrastructure.
Redis Cloud owners and viewers can leverage a RESTful API that permits operations against a variety of resources, including subscriptions, databases, and related infrastructure.

[Once it's enabled]({{< relref "/operate/rc/api/get-started/enable-the-api.md" >}}), you can use the REST API to create, update, and delete subscriptions, databases, and other entities.

API operations run asynchronously, which means that provisioning occurs in the background. When you submit a request, a background process starts working on it. The response object includes an ID that lets you determine the status of the background process as it performs its work.
All create, update, and delete API operations (`POST`, `PUT`, and `DELETE`) and some query operations (`GET`) run asynchronously, which means that provisioning occurs in the background. When you submit a request, a background process, known as a **Task**, starts working on it. The response object includes an ID that lets you determine the status of the background process as it performs its work.

For operations that do not create or modify resources (such as most GET operations), the API is sychronous; that is, the response object reports the results of the request.
For operations that do not create or modify resources (such as most GET operations), the API is synchronous; that is, the response object reports the results of the request.

Asynchronous operations have two main phases: processing and provisioning. A resource is not available until both phases are complete.

Expand All @@ -30,17 +30,9 @@ During this phase, the request is received, evaluated, planned, and executed.

Many operations are asychronous, including CREATE, UPDATE, and DELETE operations. The response objects for such operations provide a `taskId` identifier that lets you track the progress of the underlying operation.

You can query the `taskId` to track the state of a specific task:
You can query the `taskId` to track the state of a specific task using [`GET /v1/tasks/{taskId}`]({{< relref "/operate/rc/api/api-reference#tag/Tasks/operation/getTaskById" >}}).

```shell
GET "https://[host]/v1/tasks/<taskId>"
```

You can also query the state of all active tasks or recently completed tasks in your account:

```shell
GET "https://[host]/v1/tasks"
```
You can also query the state of all active tasks or recently completed tasks in your account using [`GET /tasks`]({{< relref "/operate/rc/api/api-reference#tag/Tasks/operation/getAllTasks" >}})

### Task process states

Expand Down Expand Up @@ -69,13 +61,7 @@ The term "provisioning" refers to all infrastructure changes required in order t

The provisioning phase may require several minutes to complete. You can query the resource identifier to track the progress of the provisioning phase.

For example, when you provision a new subscription, use this API call to query the status of the subscription:

```shell
GET "https://[host]/v1/subscriptions/<subscription-id>"
```

Where the `<subscription-id>` is the resource ID that you receive when the task is in the `processing-completed` state.
For example, when you provision a new subscription, use [`GET /v1/subscriptions/{subscriptionId}`]({{< relref "/operate/rc/api/api-reference#tag/Subscriptions-Pro/operation/getSubscriptionById" >}}), where the `{subscriptionId}` is the resource ID that you receive when the task is in the `processing-completed` state.

### Provisioning state values

Expand Down
Binary file modified static/images/rc/access-management-api-keys-tab.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/images/rc/access-management-create-user-key.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/images/rc/access-management-user-key-add.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading