UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

323 lines (277 loc) 8.35 kB
// 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; }