cloudflare
Version:
The official TypeScript library for the Cloudflare API
323 lines (277 loc) • 8.35 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as Core from "../../../core";
import { APIResource } from "../../../resource";
import { isRequestOptions } from "../../../core";
import * as TokensAPI from "./tokens";
import * as PermissionGroupsAPI from "./permission-groups";
import * as ValueAPI from "./value";
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../../pagination";
export class Tokens extends APIResource {
permissionGroups: PermissionGroupsAPI.PermissionGroups = new PermissionGroupsAPI.PermissionGroups(
this._client,
);
value: ValueAPI.Value = new ValueAPI.Value(this._client);
/**
* Create a new access token.
*/
create(body: TokenCreateParams, options?: Core.RequestOptions): Core.APIPromise<TokenCreateResponse> {
return (
this._client.post('/user/tokens', { body, ...options }) as Core.APIPromise<{
result: TokenCreateResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Update an existing token.
*/
update(
tokenId: unknown,
body: TokenUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<TokenUpdateResponse> {
return (
this._client.put(`/user/tokens/${tokenId}`, { body, ...options }) as Core.APIPromise<{
result: TokenUpdateResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* List all access tokens you created.
*/
list(
query?: TokenListParams,
options?: Core.RequestOptions,
): Core.PagePromise<TokenListResponsesV4PagePaginationArray, TokenListResponse>;
list(
options?: Core.RequestOptions,
): Core.PagePromise<TokenListResponsesV4PagePaginationArray, TokenListResponse>;
list(
query: TokenListParams | Core.RequestOptions = {},
options?: Core.RequestOptions,
): Core.PagePromise<TokenListResponsesV4PagePaginationArray, TokenListResponse> {
if (isRequestOptions(query)) {
return this.list({}, query);
}
return this._client.getAPIList('/user/tokens', TokenListResponsesV4PagePaginationArray, {
query,
...options,
});
}
/**
* Destroy a token.
*/
delete(tokenId: unknown, options?: Core.RequestOptions): Core.APIPromise<TokenDeleteResponse | null> {
return (
this._client.delete(`/user/tokens/${tokenId}`, options) as Core.APIPromise<{
result: TokenDeleteResponse | null;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get information about a specific token.
*/
get(tokenId: unknown, options?: Core.RequestOptions): Core.APIPromise<TokenGetResponse> {
return (
this._client.get(`/user/tokens/${tokenId}`, options) as Core.APIPromise<{ result: TokenGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Test whether a token works.
*/
verify(options?: Core.RequestOptions): Core.APIPromise<TokenVerifyResponse> {
return (
this._client.get('/user/tokens/verify', options) as Core.APIPromise<{ result: TokenVerifyResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class TokenListResponsesV4PagePaginationArray extends V4PagePaginationArray<TokenListResponse> {}
export interface TokenCreateResponse {
/**
* The token value.
*/
value?: ValueAPI.TokenValue;
}
export type TokenUpdateResponse = unknown | string | null;
export type TokenListResponse = unknown;
export interface TokenDeleteResponse {
/**
* Identifier
*/
id: string;
}
export type TokenGetResponse = unknown | string | null;
export interface TokenVerifyResponse {
/**
* Token identifier tag.
*/
id: string;
/**
* Status of the token.
*/
status: 'active' | 'disabled' | 'expired';
/**
* The expiration time on or after which the JWT MUST NOT be accepted for
* processing.
*/
expires_on?: string;
/**
* The time before which the token MUST NOT be accepted for processing.
*/
not_before?: string;
}
export interface TokenCreateParams {
/**
* Token name.
*/
name: string;
/**
* List of access policies assigned to the token.
*/
policies: Array<TokenCreateParams.Policy>;
condition?: TokenCreateParams.Condition;
/**
* The expiration time on or after which the JWT MUST NOT be accepted for
* processing.
*/
expires_on?: string;
/**
* The time before which the token MUST NOT be accepted for processing.
*/
not_before?: string;
}
export namespace TokenCreateParams {
export interface Policy {
/**
* Allow or deny operations against the resources.
*/
effect: 'allow' | 'deny';
/**
* A set of permission groups that are specified to the policy.
*/
permission_groups: Array<Policy.PermissionGroup>;
/**
* A list of resource names that the policy applies to.
*/
resources: unknown;
}
export namespace Policy {
/**
* A named group of permissions that map to a group of operations against
* resources.
*/
export interface PermissionGroup {}
}
export interface Condition {
/**
* Client IP restrictions.
*/
request_ip?: Condition.RequestIP;
}
export namespace Condition {
/**
* Client IP restrictions.
*/
export interface RequestIP {
/**
* List of IPv4/IPv6 CIDR addresses.
*/
in?: Array<string>;
/**
* List of IPv4/IPv6 CIDR addresses.
*/
not_in?: Array<string>;
}
}
}
export interface TokenUpdateParams {
/**
* Token name.
*/
name: string;
/**
* List of access policies assigned to the token.
*/
policies: Array<TokenUpdateParams.Policy>;
/**
* Status of the token.
*/
status: 'active' | 'disabled' | 'expired';
condition?: TokenUpdateParams.Condition;
/**
* The expiration time on or after which the JWT MUST NOT be accepted for
* processing.
*/
expires_on?: string;
/**
* The time before which the token MUST NOT be accepted for processing.
*/
not_before?: string;
}
export namespace TokenUpdateParams {
export interface Policy {
/**
* Allow or deny operations against the resources.
*/
effect: 'allow' | 'deny';
/**
* A set of permission groups that are specified to the policy.
*/
permission_groups: Array<Policy.PermissionGroup>;
/**
* A list of resource names that the policy applies to.
*/
resources: unknown;
}
export namespace Policy {
/**
* A named group of permissions that map to a group of operations against
* resources.
*/
export interface PermissionGroup {}
}
export interface Condition {
/**
* Client IP restrictions.
*/
request_ip?: Condition.RequestIP;
}
export namespace Condition {
/**
* Client IP restrictions.
*/
export interface RequestIP {
/**
* List of IPv4/IPv6 CIDR addresses.
*/
in?: Array<string>;
/**
* List of IPv4/IPv6 CIDR addresses.
*/
not_in?: Array<string>;
}
}
}
export interface TokenListParams extends V4PagePaginationArrayParams {
/**
* Direction to order results.
*/
direction?: 'asc' | 'desc';
}
export namespace Tokens {
export import TokenCreateResponse = TokensAPI.TokenCreateResponse;
export import TokenUpdateResponse = TokensAPI.TokenUpdateResponse;
export import TokenListResponse = TokensAPI.TokenListResponse;
export import TokenDeleteResponse = TokensAPI.TokenDeleteResponse;
export import TokenGetResponse = TokensAPI.TokenGetResponse;
export import TokenVerifyResponse = TokensAPI.TokenVerifyResponse;
export import TokenListResponsesV4PagePaginationArray = TokensAPI.TokenListResponsesV4PagePaginationArray;
export import TokenCreateParams = TokensAPI.TokenCreateParams;
export import TokenUpdateParams = TokensAPI.TokenUpdateParams;
export import TokenListParams = TokensAPI.TokenListParams;
export import PermissionGroups = PermissionGroupsAPI.PermissionGroups;
export import PermissionGroupListResponse = PermissionGroupsAPI.PermissionGroupListResponse;
export import PermissionGroupListResponsesSinglePage = PermissionGroupsAPI.PermissionGroupListResponsesSinglePage;
export import Value = ValueAPI.Value;
export import TokenValue = ValueAPI.TokenValue;
export import ValueUpdateParams = ValueAPI.ValueUpdateParams;
}