cloudflare
Version:
The official TypeScript library for the Cloudflare API
319 lines (275 loc) • 8 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 * as VariantsAPI from "./variants";
export class Variants extends APIResource {
/**
* Specify variants that allow you to resize images for different use cases.
*/
create(params: VariantCreateParams, options?: Core.RequestOptions): Core.APIPromise<V1ImageVariant> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/images/v1/variants`, {
body,
...options,
}) as Core.APIPromise<{ result: V1ImageVariant }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Lists existing variants.
*/
list(params: VariantListParams, options?: Core.RequestOptions): Core.APIPromise<V1ImageVariants> {
const { account_id } = params;
return (
this._client.get(`/accounts/${account_id}/images/v1/variants`, options) as Core.APIPromise<{
result: V1ImageVariants;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Deleting a variant purges the cache for all images associated with the variant.
*/
delete(
variantId: string,
params: VariantDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<VariantDeleteResponse> {
const { account_id } = params;
return (
this._client.delete(
`/accounts/${account_id}/images/v1/variants/${variantId}`,
options,
) as Core.APIPromise<{ result: VariantDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updating a variant purges the cache for all images associated with the variant.
*/
edit(
variantId: string,
params: VariantEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<V1ImageVariant> {
const { account_id, ...body } = params;
return (
this._client.patch(`/accounts/${account_id}/images/v1/variants/${variantId}`, {
body,
...options,
}) as Core.APIPromise<{ result: V1ImageVariant }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetch details for a single variant.
*/
get(
variantId: string,
params: VariantGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<V1ImageVariant> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/images/v1/variants/${variantId}`,
options,
) as Core.APIPromise<{ result: V1ImageVariant }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface V1ImageVariant {
variant?: V1ImageVariant.Variant;
}
export namespace V1ImageVariant {
export interface Variant {
id: string;
/**
* Allows you to define image resizing sizes for different use cases.
*/
options: Variant.Options;
/**
* Indicates whether the variant can access an image without a signature,
* regardless of image access control.
*/
neverRequireSignedURLs?: boolean;
}
export namespace Variant {
/**
* Allows you to define image resizing sizes for different use cases.
*/
export interface Options {
/**
* The fit property describes how the width and height dimensions should be
* interpreted.
*/
fit: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad';
/**
* Maximum height in image pixels.
*/
height: number;
/**
* What EXIF data should be preserved in the output image.
*/
metadata: 'keep' | 'copyright' | 'none';
/**
* Maximum width in image pixels.
*/
width: number;
}
}
}
export interface V1ImageVariants {
variants?: V1ImageVariants.Variants;
}
export namespace V1ImageVariants {
export interface Variants {
hero?: Variants.Hero;
}
export namespace Variants {
export interface Hero {
id: string;
/**
* Allows you to define image resizing sizes for different use cases.
*/
options: Hero.Options;
/**
* Indicates whether the variant can access an image without a signature,
* regardless of image access control.
*/
neverRequireSignedURLs?: boolean;
}
export namespace Hero {
/**
* Allows you to define image resizing sizes for different use cases.
*/
export interface Options {
/**
* The fit property describes how the width and height dimensions should be
* interpreted.
*/
fit: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad';
/**
* Maximum height in image pixels.
*/
height: number;
/**
* What EXIF data should be preserved in the output image.
*/
metadata: 'keep' | 'copyright' | 'none';
/**
* Maximum width in image pixels.
*/
width: number;
}
}
}
}
export type VariantDeleteResponse = unknown | string;
export interface VariantCreateParams {
/**
* Path param: Account identifier tag.
*/
account_id: string;
/**
* Body param:
*/
id: string;
/**
* Body param: Allows you to define image resizing sizes for different use cases.
*/
options: VariantCreateParams.Options;
/**
* Body param: Indicates whether the variant can access an image without a
* signature, regardless of image access control.
*/
neverRequireSignedURLs?: boolean;
}
export namespace VariantCreateParams {
/**
* Allows you to define image resizing sizes for different use cases.
*/
export interface Options {
/**
* The fit property describes how the width and height dimensions should be
* interpreted.
*/
fit: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad';
/**
* Maximum height in image pixels.
*/
height: number;
/**
* What EXIF data should be preserved in the output image.
*/
metadata: 'keep' | 'copyright' | 'none';
/**
* Maximum width in image pixels.
*/
width: number;
}
}
export interface VariantListParams {
/**
* Account identifier tag.
*/
account_id: string;
}
export interface VariantDeleteParams {
/**
* Account identifier tag.
*/
account_id: string;
}
export interface VariantEditParams {
/**
* Path param: Account identifier tag.
*/
account_id: string;
/**
* Body param: Allows you to define image resizing sizes for different use cases.
*/
options: VariantEditParams.Options;
/**
* Body param: Indicates whether the variant can access an image without a
* signature, regardless of image access control.
*/
neverRequireSignedURLs?: boolean;
}
export namespace VariantEditParams {
/**
* Allows you to define image resizing sizes for different use cases.
*/
export interface Options {
/**
* The fit property describes how the width and height dimensions should be
* interpreted.
*/
fit: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad';
/**
* Maximum height in image pixels.
*/
height: number;
/**
* What EXIF data should be preserved in the output image.
*/
metadata: 'keep' | 'copyright' | 'none';
/**
* Maximum width in image pixels.
*/
width: number;
}
}
export interface VariantGetParams {
/**
* Account identifier tag.
*/
account_id: string;
}
export namespace Variants {
export import V1ImageVariant = VariantsAPI.V1ImageVariant;
export import V1ImageVariants = VariantsAPI.V1ImageVariants;
export import VariantDeleteResponse = VariantsAPI.VariantDeleteResponse;
export import VariantCreateParams = VariantsAPI.VariantCreateParams;
export import VariantListParams = VariantsAPI.VariantListParams;
export import VariantDeleteParams = VariantsAPI.VariantDeleteParams;
export import VariantEditParams = VariantsAPI.VariantEditParams;
export import VariantGetParams = VariantsAPI.VariantGetParams;
}