cloudflare
Version:
The official TypeScript library for the Cloudflare API
137 lines (120 loc) • 3.75 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../../core/resource';
import { PagePromise, SinglePage } from '../../../../core/pagination';
import { RequestOptions } from '../../../../internal/request-options';
import { path } from '../../../../internal/utils/path';
export class BaseAuthMethods extends APIResource {
static override readonly _key: readonly ['zeroTrust', 'casb', 'applications', 'authMethods'] =
Object.freeze(['zeroTrust', 'casb', 'applications', 'authMethods'] as const);
/**
* Returns available auth methods for the specified vendor, including credential
* schema, instructions, and example payloads. Use this to understand what
* credentials are required before calling POST /v2/integrations.
*
* @example
* ```ts
* // Automatically fetches more pages as needed.
* for await (const authMethodListResponse of client.zeroTrust.casb.applications.authMethods.list(
* 'ANTHROPIC',
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* )) {
* // ...
* }
* ```
*/
list(
applicationID:
| 'ANTHROPIC'
| 'AWS'
| 'BITBUCKET'
| 'BOX'
| 'CONFLUENCE'
| 'DROPBOX'
| 'GITHUB'
| 'GOOGLE_CLOUD_PLATFORM'
| 'GOOGLE_WORKSPACE'
| 'JIRA'
| 'MICROSOFT_INTERNAL'
| 'OPENAI'
| 'SALESFORCE'
| 'SERVICENOW'
| 'SLACK',
params: AuthMethodListParams,
options?: RequestOptions,
): PagePromise<AuthMethodListResponsesSinglePage, AuthMethodListResponse> {
const { account_id, ...query } = params;
return this._client.getAPIList(
path`/accounts/${account_id}/one/applications/${applicationID}/auth-methods`,
SinglePage<AuthMethodListResponse>,
{ query, ...options },
);
}
}
export class AuthMethods extends BaseAuthMethods {}
export type AuthMethodListResponsesSinglePage = SinglePage<AuthMethodListResponse>;
/**
* Detailed auth method info including credentials schema and instructions.
*/
export interface AuthMethodListResponse {
/**
* Auth method identifier.
*/
id: string;
/**
* Human-readable auth method name.
*/
display_name: string;
/**
* Whether setup requires human interaction or integration can be created purely
* using API (e.g., For OAuth can not be created without user interaction).
*/
human_interaction_required: boolean;
/**
* Step-by-step instructions for obtaining credentials.
*/
instructions: AuthMethodListResponse.Instructions;
/**
* Example credentials payload with placeholder values.
*/
payload_example: { [key: string]: unknown } | null;
/**
* JSON Schema for the credentials object in POST /v2/integrations request.
*/
payload_schema: { [key: string]: unknown } | null;
/**
* OAuth redirect URL for vendors requiring human interaction.
*/
redirect_url: string | null;
}
export namespace AuthMethodListResponse {
/**
* Step-by-step instructions for obtaining credentials.
*/
export interface Instructions {
/**
* Detailed instructions in markdown format.
*/
markdown: string;
}
}
export interface AuthMethodListParams {
/**
* Path param: Cloudflare account identifier.
*/
account_id: string;
/**
* Query param: A page number within the paginated result set.
*/
page?: number;
/**
* Query param: Number of results to return per page.
*/
page_size?: number;
}
export declare namespace AuthMethods {
export {
type AuthMethodListResponse as AuthMethodListResponse,
type AuthMethodListResponsesSinglePage as AuthMethodListResponsesSinglePage,
type AuthMethodListParams as AuthMethodListParams,
};
}