import { APIResource } from "../resource.js"; import * as Core from "../core.js"; import * as Shared from "./shared.js"; import * as AccountsAPI from "./accounts/accounts.js"; import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../pagination.js"; export declare class Memberships extends APIResource { /** * Accept or reject this account invitation. * * @example * ```ts * const membership = await client.memberships.update( * '4536bcfad5faccb111b47003c79917fa', * { status: 'accepted' }, * ); * ``` */ update(membershipId: string, body: MembershipUpdateParams, options?: Core.RequestOptions): Core.APIPromise; /** * List memberships of accounts the user can access. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const membership of client.memberships.list()) { * // ... * } * ``` */ list(query?: MembershipListParams, options?: Core.RequestOptions): Core.PagePromise; list(options?: Core.RequestOptions): Core.PagePromise; /** * Remove the associated member from an account. * * @example * ```ts * const membership = await client.memberships.delete( * '4536bcfad5faccb111b47003c79917fa', * ); * ``` */ delete(membershipId: string, options?: Core.RequestOptions): Core.APIPromise; /** * Get a specific membership. * * @example * ```ts * const membership = await client.memberships.get( * '4536bcfad5faccb111b47003c79917fa', * ); * ``` */ get(membershipId: string, options?: Core.RequestOptions): Core.APIPromise; } export declare class MembershipsV4PagePaginationArray extends V4PagePaginationArray { } export interface Membership { /** * Membership identifier tag. */ id?: string; account?: AccountsAPI.Account; /** * Enterprise only. Indicates whether or not API access is enabled specifically for * this user on a given account. */ api_access_enabled?: boolean | null; /** * All access permissions for the user at the account. */ permissions?: Membership.Permissions; /** * List of role names the membership has for this account. */ roles?: Array; /** * Status of this membership. */ status?: 'accepted' | 'pending' | 'rejected'; } export declare namespace Membership { /** * All access permissions for the user at the account. */ interface Permissions { analytics?: Shared.PermissionGrant; billing?: Shared.PermissionGrant; cache_purge?: Shared.PermissionGrant; dns?: Shared.PermissionGrant; dns_records?: Shared.PermissionGrant; lb?: Shared.PermissionGrant; logs?: Shared.PermissionGrant; organization?: Shared.PermissionGrant; ssl?: Shared.PermissionGrant; waf?: Shared.PermissionGrant; zone_settings?: Shared.PermissionGrant; zones?: Shared.PermissionGrant; } } export interface MembershipUpdateResponse { /** * Membership identifier tag. */ id?: string; account?: AccountsAPI.Account; /** * Enterprise only. Indicates whether or not API access is enabled specifically for * this user on a given account. */ api_access_enabled?: boolean | null; /** * All access permissions for the user at the account. */ permissions?: MembershipUpdateResponse.Permissions; /** * Access policy for the membership */ policies?: Array; /** * List of role names the membership has for this account. */ roles?: Array; /** * Status of this membership. */ status?: 'accepted' | 'pending' | 'rejected'; } export declare namespace MembershipUpdateResponse { /** * All access permissions for the user at the account. */ interface Permissions { analytics?: Shared.PermissionGrant; billing?: Shared.PermissionGrant; cache_purge?: Shared.PermissionGrant; dns?: Shared.PermissionGrant; dns_records?: Shared.PermissionGrant; lb?: Shared.PermissionGrant; logs?: Shared.PermissionGrant; organization?: Shared.PermissionGrant; ssl?: Shared.PermissionGrant; waf?: Shared.PermissionGrant; zone_settings?: Shared.PermissionGrant; zones?: Shared.PermissionGrant; } interface Policy { /** * Policy identifier. */ id?: string; /** * Allow or deny operations against the resources. */ access?: 'allow' | 'deny'; /** * A set of permission groups that are specified to the policy. */ permission_groups?: Array; /** * A list of resource groups that the policy applies to. */ resource_groups?: Array; } namespace Policy { /** * A named group of permissions that map to a group of operations against * resources. */ interface PermissionGroup { /** * Identifier of the permission group. */ id: string; /** * Attributes associated to the permission group. */ meta?: PermissionGroup.Meta; /** * Name of the permission group. */ name?: string; } namespace PermissionGroup { /** * Attributes associated to the permission group. */ interface Meta { key?: string; value?: string; } } /** * A group of scoped resources. */ interface ResourceGroup { /** * Identifier of the resource group. */ id: string; /** * The scope associated to the resource group */ scope: Array; /** * Attributes associated to the resource group. */ meta?: ResourceGroup.Meta; /** * Name of the resource group. */ name?: string; } namespace ResourceGroup { /** * A scope is a combination of scope objects which provides additional context. */ interface Scope { /** * This is a combination of pre-defined resource name and identifier (like Account * ID etc.) */ key: string; /** * A list of scope objects for additional context. */ objects: Array; } namespace Scope { /** * A scope object represents any resource that can have actions applied against * invite. */ interface Object { /** * This is a combination of pre-defined resource name and identifier (like Zone ID * etc.) */ key: string; } } /** * Attributes associated to the resource group. */ interface Meta { key?: string; value?: string; } } } } export interface MembershipDeleteResponse { /** * Membership identifier tag. */ id?: string; } export interface MembershipGetResponse { /** * Membership identifier tag. */ id?: string; account?: AccountsAPI.Account; /** * Enterprise only. Indicates whether or not API access is enabled specifically for * this user on a given account. */ api_access_enabled?: boolean | null; /** * All access permissions for the user at the account. */ permissions?: MembershipGetResponse.Permissions; /** * Access policy for the membership */ policies?: Array; /** * List of role names the membership has for this account. */ roles?: Array; /** * Status of this membership. */ status?: 'accepted' | 'pending' | 'rejected'; } export declare namespace MembershipGetResponse { /** * All access permissions for the user at the account. */ interface Permissions { analytics?: Shared.PermissionGrant; billing?: Shared.PermissionGrant; cache_purge?: Shared.PermissionGrant; dns?: Shared.PermissionGrant; dns_records?: Shared.PermissionGrant; lb?: Shared.PermissionGrant; logs?: Shared.PermissionGrant; organization?: Shared.PermissionGrant; ssl?: Shared.PermissionGrant; waf?: Shared.PermissionGrant; zone_settings?: Shared.PermissionGrant; zones?: Shared.PermissionGrant; } interface Policy { /** * Policy identifier. */ id?: string; /** * Allow or deny operations against the resources. */ access?: 'allow' | 'deny'; /** * A set of permission groups that are specified to the policy. */ permission_groups?: Array; /** * A list of resource groups that the policy applies to. */ resource_groups?: Array; } namespace Policy { /** * A named group of permissions that map to a group of operations against * resources. */ interface PermissionGroup { /** * Identifier of the permission group. */ id: string; /** * Attributes associated to the permission group. */ meta?: PermissionGroup.Meta; /** * Name of the permission group. */ name?: string; } namespace PermissionGroup { /** * Attributes associated to the permission group. */ interface Meta { key?: string; value?: string; } } /** * A group of scoped resources. */ interface ResourceGroup { /** * Identifier of the resource group. */ id: string; /** * The scope associated to the resource group */ scope: Array; /** * Attributes associated to the resource group. */ meta?: ResourceGroup.Meta; /** * Name of the resource group. */ name?: string; } namespace ResourceGroup { /** * A scope is a combination of scope objects which provides additional context. */ interface Scope { /** * This is a combination of pre-defined resource name and identifier (like Account * ID etc.) */ key: string; /** * A list of scope objects for additional context. */ objects: Array; } namespace Scope { /** * A scope object represents any resource that can have actions applied against * invite. */ interface Object { /** * This is a combination of pre-defined resource name and identifier (like Zone ID * etc.) */ key: string; } } /** * Attributes associated to the resource group. */ interface Meta { key?: string; value?: string; } } } } export interface MembershipUpdateParams { /** * Whether to accept or reject this account invitation. */ status: 'accepted' | 'rejected'; } export interface MembershipListParams extends V4PagePaginationArrayParams { account?: MembershipListParams.Account; /** * Direction to order memberships. */ direction?: 'asc' | 'desc'; /** * Account name */ name?: string; /** * Field to order memberships by. */ order?: 'id' | 'account.name' | 'status'; /** * Status of this membership. */ status?: 'accepted' | 'pending' | 'rejected'; } export declare namespace MembershipListParams { interface Account { /** * Account name */ name?: string; } } export declare namespace Memberships { export { type Membership as Membership, type MembershipUpdateResponse as MembershipUpdateResponse, type MembershipDeleteResponse as MembershipDeleteResponse, type MembershipGetResponse as MembershipGetResponse, MembershipsV4PagePaginationArray as MembershipsV4PagePaginationArray, type MembershipUpdateParams as MembershipUpdateParams, type MembershipListParams as MembershipListParams, }; } //# sourceMappingURL=memberships.d.ts.map