diff --git a/lib/entities/environment-template-installation.ts b/lib/entities/environment-template-installation.ts index 981596db08..e1ca5b7df4 100644 --- a/lib/entities/environment-template-installation.ts +++ b/lib/entities/environment-template-installation.ts @@ -13,6 +13,7 @@ import { wrapCursorPaginatedCollection } from '../common-utils' type JsonObject = { [Key in string]?: JsonValue } type JsonArray = Array type JsonValue = string | number | boolean | JsonObject | JsonArray | null + enum EnvironmentTemplateInstallationStatuses { created = 'created', inProgress = 'inProgress', @@ -44,7 +45,9 @@ export type EnvironmentTemplateInstallationProps = { export type CreateEnvironmentTemplateInstallationProps = { version: number - takeover?: Link<'ContentType'>[] + takeover?: { + items: Link<'ContentType'>[] + } changeSet?: Link<'ChangeSet'> } @@ -58,14 +61,14 @@ export type ValidationFinding = { details: Record } -export type EnvironmentTemplateValidationProps = { +export type EnvironmentTemplateValidationProps = { sys: { type: 'Array' environment: Link<'Environment'> space: Link<'Space'> changeSet: Link<'ChangeSet'> } - items: ValidationFinding[] + items: T[] } export type EnvironmentTemplateInstallation = EnvironmentTemplateInstallationProps & diff --git a/lib/entities/environment-template.ts b/lib/entities/environment-template.ts index 5e61c6a761..7fb6133201 100644 --- a/lib/entities/environment-template.ts +++ b/lib/entities/environment-template.ts @@ -7,8 +7,8 @@ import { createEnvironmentTemplateApi, } from '../create-environment-template-api' import enhanceWithMethods from '../enhance-with-methods' -import { ContentType } from './content-type' -import { EditorInterface } from './editor-interface' +import { ContentTypeProps } from './content-type' +import { EditorInterfaceProps } from './editor-interface' export type Hint = { operation: 'renameFieldId' @@ -16,11 +16,11 @@ export type Hint = { previousFieldId: string } -export interface EditorInterfaceTemplate extends Omit { +export interface EditorInterfaceTemplateProps extends Omit { contentTypeTemplate: Link<'ContentTypeTemplate'> } -export interface ContentTypeTemplate extends Omit { +export interface ContentTypeTemplateProps extends Omit { id: string basedOn?: { space: Link<'Space'> @@ -31,14 +31,14 @@ export interface ContentTypeTemplate extends Omit { } export type EnvironmentTemplateProps = { - sys: BasicMetaSysProps & { version: number } + sys: BasicMetaSysProps & { version: number; organization: Link<'Organization'> } name: string description?: string versionName: string versionDescription?: string entities: { - contentTypeTemplates: Array - editorInterfaceTemplates: Array + contentTypeTemplates: Array + editorInterfaceTemplates: Array } } diff --git a/lib/export-types.ts b/lib/export-types.ts index a65c8ffbb5..840f52ef69 100644 --- a/lib/export-types.ts +++ b/lib/export-types.ts @@ -96,9 +96,9 @@ export type { EnvironmentAliasProps, } from './entities/environment-alias' export type { - ContentTypeTemplate, + ContentTypeTemplateProps, CreateEnvironmentTemplateProps, - EditorInterfaceTemplate, + EditorInterfaceTemplateProps, EnvironmentTemplate, EnvironmentTemplateProps, Hint, diff --git a/lib/plain/common-types.ts b/lib/plain/common-types.ts index ffb6e9a68d..73d218ff1b 100644 --- a/lib/plain/common-types.ts +++ b/lib/plain/common-types.ts @@ -39,6 +39,9 @@ import { GetAppActionsForEnvParams, GetUserUIConfigParams, GetUIConfigParams, + GetEnvironmentTemplateParams, + BasicCursorPaginationOptions, + EnvironmentTemplateParams, } from '../common-types' import { ApiKeyProps, CreateApiKeyProps } from '../entities/api-key' import { @@ -160,6 +163,16 @@ import { } from '../entities/workflows-changelog-entry' import { UserUIConfigProps } from '../entities/user-ui-config' import { UIConfigProps } from '../entities/ui-config' +import { + CreateEnvironmentTemplateProps, + EnvironmentTemplateProps, +} from '../entities/environment-template' +import { + CreateEnvironmentTemplateInstallationProps, + EnvironmentTemplateInstallationProps, + EnvironmentTemplateValidationProps, + ValidateEnvironmentTemplateInstallationProps, +} from '../entities/environment-template-installation' export type PlainClientAPI = { raw: { @@ -293,6 +306,67 @@ export type PlainClientAPI = { ): Promise delete(params: OptionalDefaults): Promise } + environmentTemplate: { + get( + params: GetEnvironmentTemplateParams & { version?: number }, + headers?: AxiosRequestHeaders + ): Promise + getMany( + params: BasicCursorPaginationOptions & GetOrganizationParams, + headers?: AxiosRequestHeaders + ): Promise> + create( + params: GetOrganizationParams, + rawData: CreateEnvironmentTemplateProps, + headers?: AxiosRequestHeaders + ): Promise + versionUpdate( + params: GetEnvironmentTemplateParams & { version: number }, + rawData: { versionName?: string; versionDescription?: string }, + headers?: AxiosRequestHeaders + ): Promise + update( + params: GetEnvironmentTemplateParams, + rawData: EnvironmentTemplateProps, + headers?: AxiosRequestHeaders + ): Promise + delete(params: GetEnvironmentTemplateParams, headers?: AxiosRequestHeaders): Promise + versions( + params: GetEnvironmentTemplateParams & BasicCursorPaginationOptions, + headers?: AxiosRequestHeaders + ): Promise> + validate( + params: EnvironmentTemplateParams & { + version?: number + }, + rawData: ValidateEnvironmentTemplateInstallationProps, + headers?: AxiosRequestHeaders + ): Promise + install( + params: EnvironmentTemplateParams, + rawData: CreateEnvironmentTemplateInstallationProps, + headers?: AxiosRequestHeaders + ): Promise + disconnect(params: EnvironmentTemplateParams, headers?: AxiosRequestHeaders): Promise + } + environmentTemplateInstallation: { + getMany( + params: BasicCursorPaginationOptions & { + environmentId?: string + environmentTemplateId: string + organizationId: string + spaceId?: string + }, + headers?: AxiosRequestHeaders + ): Promise> + getForEnvironment( + params: BasicCursorPaginationOptions & + EnvironmentTemplateParams & { + installationId?: string + }, + headers?: AxiosRequestHeaders + ): Promise> + } bulkAction: { get(params: GetBulkActionParams): Promise> publish( diff --git a/lib/plain/plain-client.ts b/lib/plain/plain-client.ts index 183f6add79..186dc9d446 100644 --- a/lib/plain/plain-client.ts +++ b/lib/plain/plain-client.ts @@ -116,6 +116,22 @@ export const createPlainClient = ( update: wrap(wrapParams, 'EnvironmentAlias', 'update'), delete: wrap(wrapParams, 'EnvironmentAlias', 'delete'), }, + environmentTemplate: { + get: wrap(wrapParams, 'EnvironmentTemplate', 'get'), + getMany: wrap(wrapParams, 'EnvironmentTemplate', 'getMany'), + create: wrap(wrapParams, 'EnvironmentTemplate', 'create'), + versionUpdate: wrap(wrapParams, 'EnvironmentTemplate', 'versionUpdate'), + update: wrap(wrapParams, 'EnvironmentTemplate', 'update'), + install: wrap(wrapParams, 'EnvironmentTemplate', 'install'), + versions: wrap(wrapParams, 'EnvironmentTemplate', 'versions'), + validate: wrap(wrapParams, 'EnvironmentTemplate', 'validate'), + disconnect: wrap(wrapParams, 'EnvironmentTemplate', 'disconnect'), + delete: wrap(wrapParams, 'EnvironmentTemplate', 'delete'), + }, + environmentTemplateInstallation: { + getMany: wrap(wrapParams, 'EnvironmentTemplateInstallation', 'getMany'), + getForEnvironment: wrap(wrapParams, 'EnvironmentTemplateInstallation', 'getForEnvironment'), + }, bulkAction: { get: wrap(wrapParams, 'BulkAction', 'get'), publish: wrap(wrapParams, 'BulkAction', 'publish'),