diff --git a/api.ts b/api.ts index 8d8af29..79e3223 100644 --- a/api.ts +++ b/api.ts @@ -31,7 +31,7 @@ import { createRequestFunction, } from './common'; // @ts-ignore -import { BASE_PATH, RequestArgs, BaseAPI, RequiredError } from './base'; +import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI } from './base'; /** * @@ -501,6 +501,82 @@ export interface ArchiveManifestEntry { */ directory?: string; } +/** + * + * @export + * @interface Attachment + */ +export interface Attachment { + /** + * + * @type {AttachmentData} + * @memberof Attachment + */ + data: AttachmentData; + /** + * + * @type {{ [key: string]: Link; }} + * @memberof Attachment + */ + links?: { [key: string]: Link }; +} +/** + * + * @export + * @interface AttachmentData + */ +export interface AttachmentData { + /** + * + * @type {string} + * @memberof AttachmentData + */ + type: string; + /** + * ID of the resource. + * @type {string} + * @memberof AttachmentData + */ + id: string; + /** + * + * @type {AttachmentDataAttributes} + * @memberof AttachmentData + */ + attributes: AttachmentDataAttributes; +} +/** + * + * @export + * @interface AttachmentDataAttributes + */ +export interface AttachmentDataAttributes { + /** + * The underlying content of the attachment + * @type {FileAttachment | SceneViewStateAttachment} + * @memberof AttachmentDataAttributes + */ + content: FileAttachment | SceneViewStateAttachment; +} +/** + * + * @export + * @interface AttachmentList + */ +export interface AttachmentList { + /** + * + * @type {Array} + * @memberof AttachmentList + */ + data: Array; + /** + * + * @type {{ [key: string]: Link; }} + * @memberof AttachmentList + */ + links: { [key: string]: Link }; +} /** * * @export @@ -1097,6 +1173,78 @@ export interface CreateApplicationRequest { */ data: CreateAccountRequestData; } +/** + * + * @export + * @interface CreateAttachmentRequest + */ +export interface CreateAttachmentRequest { + /** + * + * @type {CreateAttachmentRequestData} + * @memberof CreateAttachmentRequest + */ + data: CreateAttachmentRequestData; +} +/** + * + * @export + * @interface CreateAttachmentRequestData + */ +export interface CreateAttachmentRequestData { + /** + * Resource object type. + * @type {string} + * @memberof CreateAttachmentRequestData + */ + type: CreateAttachmentRequestDataTypeEnum; + /** + * + * @type {CreateAttachmentRequestDataAttributes} + * @memberof CreateAttachmentRequestData + */ + attributes: CreateAttachmentRequestDataAttributes; + /** + * + * @type {CreateAttachmentRequestDataRelationships} + * @memberof CreateAttachmentRequestData + */ + relationships: CreateAttachmentRequestDataRelationships; +} + +export const CreateAttachmentRequestDataTypeEnum = { + Attachment: 'attachment', +} as const; + +export type CreateAttachmentRequestDataTypeEnum = + (typeof CreateAttachmentRequestDataTypeEnum)[keyof typeof CreateAttachmentRequestDataTypeEnum]; + +/** + * + * @export + * @interface CreateAttachmentRequestDataAttributes + */ +export interface CreateAttachmentRequestDataAttributes { + /** + * + * @type {WithFileContent | WithSceneViewStateContent} + * @memberof CreateAttachmentRequestDataAttributes + */ + withContent: WithFileContent | WithSceneViewStateContent; +} +/** + * + * @export + * @interface CreateAttachmentRequestDataRelationships + */ +export interface CreateAttachmentRequestDataRelationships { + /** + * + * @type {WithThread | WithReply} + * @memberof CreateAttachmentRequestDataRelationships + */ + context: WithThread | WithReply; +} /** * * @export @@ -1245,6 +1393,12 @@ export interface CreateExportRequestDataAttributes { * @memberof CreateExportRequestDataAttributes */ fileName?: string; + /** + * Number of seconds before the download url for the export expires when retrieving a completed export. This expiry takes effect when retrieving the export and is valid for the specified time here. + * @type {number} + * @memberof CreateExportRequestDataAttributes + */ + downloadUrlExpiry?: number; } /** * @@ -1738,10 +1892,16 @@ export interface CreatePartRequestDataAttributes { export interface CreatePartRequestDataRelationships { /** * - * @type {FileRelationship | PartAssemblyRelationship} + * @type {PartInstancesRelationship} + * @memberof CreatePartRequestDataRelationships + */ + instances?: PartInstancesRelationship; + /** + * + * @type {FileRelationship | DeprecatedPartAssemblyRelationship} * @memberof CreatePartRequestDataRelationships */ - source: FileRelationship | PartAssemblyRelationship; + source?: FileRelationship | DeprecatedPartAssemblyRelationship; } /** * @@ -1868,6 +2028,12 @@ export interface CreateReplyRequestDataAttributes { * @memberof CreateReplyRequestDataAttributes */ body: string; + /** + * + * @type {boolean} + * @memberof CreateReplyRequestDataAttributes + */ + isDrafting?: boolean; } /** * @@ -2860,6 +3026,12 @@ export interface CreateThreadRequestDataAttributes { * @memberof CreateThreadRequestDataAttributes */ body?: string; + /** + * + * @type {boolean} + * @memberof CreateThreadRequestDataAttributes + */ + isDrafting?: boolean; /** * * @type {CreateSceneReference} @@ -2899,6 +3071,51 @@ export interface CreateTranslationInspectionRequestData { */ relationships: CreateGeometrySetRequestDataRelationships; } +/** + * + * @export + * @interface CreateUploadRequest + */ +export interface CreateUploadRequest { + /** + * + * @type {CreateUploadRequestData} + * @memberof CreateUploadRequest + */ + data: CreateUploadRequestData; +} +/** + * + * @export + * @interface CreateUploadRequestData + */ +export interface CreateUploadRequestData { + /** + * Resource object type. + * @type {string} + * @memberof CreateUploadRequestData + */ + type: string; + /** + * + * @type {CreateUploadRequestDataAttributes} + * @memberof CreateUploadRequestData + */ + attributes: CreateUploadRequestDataAttributes; +} +/** + * + * @export + * @interface CreateUploadRequestDataAttributes + */ +export interface CreateUploadRequestDataAttributes { + /** + * Specifies the duration for which this pre-signed request should be valid for upload. After this time has expired, attempting to use the presigned request will fail. (Defaults to 1 hour, max value is 24 hours) + * @type {number} + * @memberof CreateUploadRequestDataAttributes + */ + expiry?: number; +} /** * * @export @@ -3168,6 +3385,46 @@ export interface CrossSectioning { */ planes: Array; } +/** + * Create Part Assembly + * @export + * @interface DeprecatedPartAssemblyRelationship + */ +export interface DeprecatedPartAssemblyRelationship { + /** + * + * @type {DeprecatedPartAssemblyRelationshipData} + * @memberof DeprecatedPartAssemblyRelationship + */ + data: DeprecatedPartAssemblyRelationshipData; +} +/** + * + * @export + * @interface DeprecatedPartAssemblyRelationshipData + */ +export interface DeprecatedPartAssemblyRelationshipData { + /** + * + * @type {Array} + * @memberof DeprecatedPartAssemblyRelationshipData + */ + children: Array; + /** + * Additional metadata about the `part` and/or `part-revision`. This has been deprecated and replaced by the PATCH endpoint /property-entries + * @type {{ [key: string]: MetadataLongType | MetadataFloatType | MetadataDateType | MetadataStringType | MetadataNullType; }} + * @memberof DeprecatedPartAssemblyRelationshipData + * @deprecated + */ + metadata?: { + [key: string]: + | MetadataLongType + | MetadataFloatType + | MetadataDateType + | MetadataStringType + | MetadataNullType; + }; +} /** * * @export @@ -3327,6 +3584,12 @@ export interface ExportData { * @memberof ExportData */ attributes: ExportDataAttributes; + /** + * + * @type {ExportDataRelationships} + * @memberof ExportData + */ + relationships?: ExportDataRelationships; /** * * @type {{ [key: string]: Link; }} @@ -3352,6 +3615,25 @@ export interface ExportDataAttributes { * @memberof ExportDataAttributes */ downloadUrl: string; + /** + * Number of seconds before the download url for the export expires when retrieving a completed export. The url can be recreated by re-fetching the export. + * @type {number} + * @memberof ExportDataAttributes + */ + downloadUrlExpiry?: number; +} +/** + * + * @export + * @interface ExportDataRelationships + */ +export interface ExportDataRelationships { + /** + * + * @type {FileRelationship} + * @memberof ExportDataRelationships + */ + file: FileRelationship; } /** * Relationship to an `export`. @@ -3477,6 +3759,33 @@ export interface FeatureLines { */ width: number; } +/** + * + * @export + * @interface FileAttachment + */ +export interface FileAttachment { + /** + * + * @type {string} + * @memberof FileAttachment + */ + type: FileAttachmentTypeEnum; + /** + * ID of the resource. + * @type {string} + * @memberof FileAttachment + */ + id: string; +} + +export const FileAttachmentTypeEnum = { + File: 'file', +} as const; + +export type FileAttachmentTypeEnum = + (typeof FileAttachmentTypeEnum)[keyof typeof FileAttachmentTypeEnum]; + /** * * @export @@ -3584,6 +3893,12 @@ export interface FileCollectionMetadataDataAttributes { * @memberof FileCollectionMetadataDataAttributes */ metadata?: { [key: string]: string }; + /** + * + * @type {string} + * @memberof FileCollectionMetadataDataAttributes + */ + expiresAt?: string; } /** * @@ -3754,6 +4069,12 @@ export interface FileMetadataDataAttributes { * @memberof FileMetadataDataAttributes */ metadata?: { [key: string]: string }; + /** + * + * @type {string} + * @memberof FileMetadataDataAttributes + */ + expiresAt?: string; } /** * Relationship to a `file`. @@ -4527,46 +4848,6 @@ export interface Part { */ links?: { [key: string]: Link }; } -/** - * Create Part Assembly - * @export - * @interface PartAssemblyRelationship - */ -export interface PartAssemblyRelationship { - /** - * - * @type {PartAssemblyRelationshipData} - * @memberof PartAssemblyRelationship - */ - data: PartAssemblyRelationshipData; -} -/** - * - * @export - * @interface PartAssemblyRelationshipData - */ -export interface PartAssemblyRelationshipData { - /** - * - * @type {Array} - * @memberof PartAssemblyRelationshipData - */ - children: Array; - /** - * Additional metadata about the `part` and/or `part-revision`. This has been deprecated and replaced by the PATCH endpoint /property-entries - * @type {{ [key: string]: MetadataLongType | MetadataFloatType | MetadataDateType | MetadataStringType | MetadataNullType; }} - * @memberof PartAssemblyRelationshipData - * @deprecated - */ - metadata?: { - [key: string]: - | MetadataLongType - | MetadataFloatType - | MetadataDateType - | MetadataStringType - | MetadataNullType; - }; -} /** * * @export @@ -4716,13 +4997,72 @@ export type PartInstanceRelationshipDataTypeEnum = (typeof PartInstanceRelationshipDataTypeEnum)[keyof typeof PartInstanceRelationshipDataTypeEnum]; /** - * + * Part Revision Assembly Instance Data * @export - * @interface PartList + * @interface PartInstancesRelationship */ -export interface PartList { +export interface PartInstancesRelationship { /** - * + * Each child must include the UUID of the revision. The optional transform may be included to position the child relative to the parent. See the Matrix4 schema for details. Note: The children will be ordered as they appear in the array. Also, it is suggested to not include the transform for any that has identity transform to keep the payload size small. Example file content: { \"children\": [ { \"id\": \"00000000-0000-0000-0000-000000000001\" }, { \"id\": \"00000000-0000-0000-0000-000000000002\", \"transform\": { \"r0\": {\"x\": 1, \"y\": -1, \"z\": 0, \"w\": 123.4 }, \"r1\": {\"x\": 1, \"y\": 1, \"z\": 0, \"w\": 234.5 }, \"r2\": {\"x\": 0, \"y\": 0, \"z\": 1, \"w\": 345.6 }, \"r3\": {\"x\": 0, \"y\": 0, \"z\": 0, \"w\": 1 } }} ] } + * @type {Array} + * @memberof PartInstancesRelationship + */ + data: Array; +} +/** + * + * @export + * @interface PartInstancesRelationshipAttributes + */ +export interface PartInstancesRelationshipAttributes { + /** + * + * @type {Matrix4} + * @memberof PartInstancesRelationshipAttributes + */ + transform?: Matrix4; +} +/** + * + * @export + * @interface PartInstancesRelationshipData + */ +export interface PartInstancesRelationshipData { + /** + * Resource object type. + * @type {string} + * @memberof PartInstancesRelationshipData + */ + type: PartInstancesRelationshipDataTypeEnum; + /** + * ID of the resource. + * @type {string} + * @memberof PartInstancesRelationshipData + */ + id: string; + /** + * + * @type {PartInstancesRelationshipAttributes} + * @memberof PartInstancesRelationshipData + */ + attributes?: PartInstancesRelationshipAttributes; +} + +export const PartInstancesRelationshipDataTypeEnum = { + PartRevisionInstance: 'part-revision-instance', +} as const; + +export type PartInstancesRelationshipDataTypeEnum = + (typeof PartInstancesRelationshipDataTypeEnum)[keyof typeof PartInstancesRelationshipDataTypeEnum]; + +/** + * + * @export + * @interface PartList + */ +export interface PartList { + /** + * * @type {Array} * @memberof PartList */ @@ -5078,9 +5418,10 @@ export interface PartRevisionInstance { */ revisionId?: string; /** - * + * This has been deprecated. Use instead the revisionId to reference the revision instance. The revisionId can be found by using the [List Part Revisions](#tag/part-revisions/operation/getPartRevisions) endpoint. * @type {string} * @memberof PartRevisionInstance + * @deprecated */ suppliedRevisionId?: string; /** @@ -6395,12 +6736,24 @@ export interface ReplyDataAttributes { * @memberof ReplyDataAttributes */ modifiedAt: string; + /** + * + * @type {string} + * @memberof ReplyDataAttributes + */ + editedAt?: string; /** * * @type {string} * @memberof ReplyDataAttributes */ body: string; + /** + * Indicates whether or not the thread is in a drafted state + * @type {boolean} + * @memberof ReplyDataAttributes + */ + isDrafting: boolean; } /** * @@ -7963,6 +8316,33 @@ export interface SceneViewState { */ links?: { [key: string]: Link }; } +/** + * + * @export + * @interface SceneViewStateAttachment + */ +export interface SceneViewStateAttachment { + /** + * + * @type {string} + * @memberof SceneViewStateAttachment + */ + type: SceneViewStateAttachmentTypeEnum; + /** + * ID of the resource. + * @type {string} + * @memberof SceneViewStateAttachment + */ + id: string; +} + +export const SceneViewStateAttachmentTypeEnum = { + SceneViewState: 'scene-view-state', +} as const; + +export type SceneViewStateAttachmentTypeEnum = + (typeof SceneViewStateAttachmentTypeEnum)[keyof typeof SceneViewStateAttachmentTypeEnum]; + /** * * @export @@ -8471,6 +8851,12 @@ export interface ThreadDataAttributes { * @memberof ThreadDataAttributes */ modifiedAt: string; + /** + * + * @type {string} + * @memberof ThreadDataAttributes + */ + editedAt?: string; /** * * @type {ThreadType} @@ -8495,6 +8881,12 @@ export interface ThreadDataAttributes { * @memberof ThreadDataAttributes */ body?: string; + /** + * Indicates whether or not the thread is in a drafted state + * @type {boolean} + * @memberof ThreadDataAttributes + */ + isDrafting: boolean; /** * * @type {number} @@ -9119,6 +9511,57 @@ export interface UpdatePartRevisionRequestDataRelationships { */ children?: PartRevisionChildren; } +/** + * + * @export + * @interface UpdateReplyRequest + */ +export interface UpdateReplyRequest { + /** + * + * @type {UpdateReplyRequestData} + * @memberof UpdateReplyRequest + */ + data: UpdateReplyRequestData; +} +/** + * + * @export + * @interface UpdateReplyRequestData + */ +export interface UpdateReplyRequestData { + /** + * Resource object type. + * @type {string} + * @memberof UpdateReplyRequestData + */ + type: string; + /** + * + * @type {UpdateReplyRequestDataAttributes} + * @memberof UpdateReplyRequestData + */ + attributes: UpdateReplyRequestDataAttributes; +} +/** + * + * @export + * @interface UpdateReplyRequestDataAttributes + */ +export interface UpdateReplyRequestDataAttributes { + /** + * + * @type {string} + * @memberof UpdateReplyRequestDataAttributes + */ + body?: string | null; + /** + * + * @type {boolean} + * @memberof UpdateReplyRequestDataAttributes + */ + isDrafting?: boolean; +} /** * * @export @@ -9549,6 +9992,69 @@ export interface UpdateSceneViewStateRequestData { */ attributes: CreateSceneViewStateRequestDataAttributes; } +/** + * + * @export + * @interface UpdateThreadRequest + */ +export interface UpdateThreadRequest { + /** + * + * @type {UpdateThreadRequestData} + * @memberof UpdateThreadRequest + */ + data: UpdateThreadRequestData; +} +/** + * + * @export + * @interface UpdateThreadRequestData + */ +export interface UpdateThreadRequestData { + /** + * Resource object type. + * @type {string} + * @memberof UpdateThreadRequestData + */ + type: string; + /** + * + * @type {UpdateThreadRequestDataAttributes} + * @memberof UpdateThreadRequestData + */ + attributes: UpdateThreadRequestDataAttributes; +} +/** + * + * @export + * @interface UpdateThreadRequestDataAttributes + */ +export interface UpdateThreadRequestDataAttributes { + /** + * + * @type {ThreadStatus} + * @memberof UpdateThreadRequestDataAttributes + */ + status?: ThreadStatus; + /** + * + * @type {string} + * @memberof UpdateThreadRequestDataAttributes + */ + title?: string | null; + /** + * + * @type {boolean} + * @memberof UpdateThreadRequestDataAttributes + */ + isDrafting?: boolean; + /** + * + * @type {string} + * @memberof UpdateThreadRequestDataAttributes + */ + body?: string | null; +} /** * * @export @@ -9615,6 +10121,69 @@ export const UpdateWebhookSubscriptionRequestDataAttributesStatusEnum = { export type UpdateWebhookSubscriptionRequestDataAttributesStatusEnum = (typeof UpdateWebhookSubscriptionRequestDataAttributesStatusEnum)[keyof typeof UpdateWebhookSubscriptionRequestDataAttributesStatusEnum]; +/** + * + * @export + * @interface UploadUrl + */ +export interface UploadUrl { + /** + * + * @type {UploadUrlData} + * @memberof UploadUrl + */ + data: UploadUrlData; + /** + * + * @type {{ [key: string]: Link; }} + * @memberof UploadUrl + */ + links?: { [key: string]: Link }; +} +/** + * + * @export + * @interface UploadUrlData + */ +export interface UploadUrlData { + /** + * + * @type {string} + * @memberof UploadUrlData + */ + type: string; + /** + * ID of the resource. + * @type {string} + * @memberof UploadUrlData + */ + id: string; + /** + * + * @type {UploadUrlDataAttributes} + * @memberof UploadUrlData + */ + attributes: UploadUrlDataAttributes; + /** + * + * @type {{ [key: string]: Link; }} + * @memberof UploadUrlData + */ + links?: { [key: string]: Link }; +} +/** + * + * @export + * @interface UploadUrlDataAttributes + */ +export interface UploadUrlDataAttributes { + /** + * + * @type {string} + * @memberof UploadUrlDataAttributes + */ + uploadUrl: string; +} /** * * @export @@ -10597,6 +11166,60 @@ export interface WebhookSubscriptionList { */ links: { [key: string]: Link }; } +/** + * + * @export + * @interface WithFileContent + */ +export interface WithFileContent { + /** + * + * @type {string} + * @memberof WithFileContent + */ + type: WithFileContentTypeEnum; + /** + * The name of the file to create + * @type {string} + * @memberof WithFileContent + */ + name: string; +} + +export const WithFileContentTypeEnum = { + FileContent: 'file-content', +} as const; + +export type WithFileContentTypeEnum = + (typeof WithFileContentTypeEnum)[keyof typeof WithFileContentTypeEnum]; + +/** + * + * @export + * @interface WithReply + */ +export interface WithReply { + /** + * + * @type {string} + * @memberof WithReply + */ + type: WithReplyTypeEnum; + /** + * ID of the resource. + * @type {string} + * @memberof WithReply + */ + id: string; +} + +export const WithReplyTypeEnum = { + Reply: 'reply', +} as const; + +export type WithReplyTypeEnum = + (typeof WithReplyTypeEnum)[keyof typeof WithReplyTypeEnum]; + /** * A sceneViewId to be associated as a reference. * @export @@ -10624,6 +11247,33 @@ export const WithSceneViewIdTypeEnum = { export type WithSceneViewIdTypeEnum = (typeof WithSceneViewIdTypeEnum)[keyof typeof WithSceneViewIdTypeEnum]; +/** + * + * @export + * @interface WithSceneViewStateContent + */ +export interface WithSceneViewStateContent { + /** + * + * @type {string} + * @memberof WithSceneViewStateContent + */ + type: WithSceneViewStateContentTypeEnum; + /** + * + * @type {WithSceneViewId | WithSceneViewStateId} + * @memberof WithSceneViewStateContent + */ + withSceneViewState: WithSceneViewId | WithSceneViewStateId; +} + +export const WithSceneViewStateContentTypeEnum = { + SceneViewStateContent: 'scene-view-state-content', +} as const; + +export type WithSceneViewStateContentTypeEnum = + (typeof WithSceneViewStateContentTypeEnum)[keyof typeof WithSceneViewStateContentTypeEnum]; + /** * A sceneViewStateId to be associated as a reference. * @export @@ -10652,7 +11302,34 @@ export type WithSceneViewStateIdTypeEnum = (typeof WithSceneViewStateIdTypeEnum)[keyof typeof WithSceneViewStateIdTypeEnum]; /** - * AccountsApi - axios parameter creator + * + * @export + * @interface WithThread + */ +export interface WithThread { + /** + * + * @type {string} + * @memberof WithThread + */ + type: WithThreadTypeEnum; + /** + * ID of the resource. + * @type {string} + * @memberof WithThread + */ + id: string; +} + +export const WithThreadTypeEnum = { + Thread: 'thread', +} as const; + +export type WithThreadTypeEnum = + (typeof WithThreadTypeEnum)[keyof typeof WithThreadTypeEnum]; + +/** + * AccountsApi - axios parameter creator * @export */ export const AccountsApiAxiosParamCreator = function ( @@ -12085,6 +12762,377 @@ export class ApplicationsApi extends BaseAPI { } } +/** + * AttachmentsApi - axios parameter creator + * @export + */ +export const AttachmentsApiAxiosParamCreator = function ( + configuration?: Configuration +) { + return { + /** + * Create an `attachment` for a thread or a reply relationship. The content of the attachment can be a scene-view-state (created or provided), or a file. A file attachment requires the caller to upload the file after the attachment creation using a provided upload url. **Preview:** This is a preview API and is subject to change. + * @param {CreateAttachmentRequest} createAttachmentRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createAttachment: async ( + createAttachmentRequest: CreateAttachmentRequest, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'createAttachmentRequest' is not null or undefined + assertParamExists( + 'createAttachment', + 'createAttachmentRequest', + createAttachmentRequest + ); + const localVarPath = `/attachments`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'POST', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + localVarHeaderParameter['Content-Type'] = 'application/vnd.api+json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + localVarRequestOptions.data = serializeDataIfNeeded( + createAttachmentRequest, + localVarRequestOptions, + configuration + ); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * List attachments **Preview:** This is a preview API and is subject to change. + * @param {string} filterRelationshipId A relationship id to filter attachments for + * @param {'thread' | 'reply'} filterRelationshipType The type of relationship (reply or thread) + * @param {string} [pageCursor] The cursor for the next page of items. + * @param {number} [pageSize] The number of items to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listAttachments: async ( + filterRelationshipId: string, + filterRelationshipType: 'thread' | 'reply', + pageCursor?: string, + pageSize?: number, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'filterRelationshipId' is not null or undefined + assertParamExists( + 'listAttachments', + 'filterRelationshipId', + filterRelationshipId + ); + // verify required parameter 'filterRelationshipType' is not null or undefined + assertParamExists( + 'listAttachments', + 'filterRelationshipType', + filterRelationshipType + ); + const localVarPath = `/attachments`; + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'GET', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + if (filterRelationshipId !== undefined) { + localVarQueryParameter['filter[relationshipId]'] = filterRelationshipId; + } + + if (filterRelationshipType !== undefined) { + localVarQueryParameter['filter[relationshipType]'] = + filterRelationshipType; + } + + if (pageCursor !== undefined) { + localVarQueryParameter['page[cursor]'] = pageCursor; + } + + if (pageSize !== undefined) { + localVarQueryParameter['page[size]'] = pageSize; + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + }; +}; + +/** + * AttachmentsApi - functional programming interface + * @export + */ +export const AttachmentsApiFp = function (configuration?: Configuration) { + const localVarAxiosParamCreator = + AttachmentsApiAxiosParamCreator(configuration); + return { + /** + * Create an `attachment` for a thread or a reply relationship. The content of the attachment can be a scene-view-state (created or provided), or a file. A file attachment requires the caller to upload the file after the attachment creation using a provided upload url. **Preview:** This is a preview API and is subject to change. + * @param {CreateAttachmentRequest} createAttachmentRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createAttachment( + createAttachmentRequest: CreateAttachmentRequest, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = + await localVarAxiosParamCreator.createAttachment( + createAttachmentRequest, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, + /** + * List attachments **Preview:** This is a preview API and is subject to change. + * @param {string} filterRelationshipId A relationship id to filter attachments for + * @param {'thread' | 'reply'} filterRelationshipType The type of relationship (reply or thread) + * @param {string} [pageCursor] The cursor for the next page of items. + * @param {number} [pageSize] The number of items to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async listAttachments( + filterRelationshipId: string, + filterRelationshipType: 'thread' | 'reply', + pageCursor?: string, + pageSize?: number, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.listAttachments( + filterRelationshipId, + filterRelationshipType, + pageCursor, + pageSize, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, + }; +}; + +/** + * AttachmentsApi - factory interface + * @export + */ +export const AttachmentsApiFactory = function ( + configuration?: Configuration, + basePath?: string, + axios?: AxiosInstance +) { + const localVarFp = AttachmentsApiFp(configuration); + return { + /** + * Create an `attachment` for a thread or a reply relationship. The content of the attachment can be a scene-view-state (created or provided), or a file. A file attachment requires the caller to upload the file after the attachment creation using a provided upload url. **Preview:** This is a preview API and is subject to change. + * @param {CreateAttachmentRequest} createAttachmentRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createAttachment( + createAttachmentRequest: CreateAttachmentRequest, + options?: any + ): AxiosPromise { + return localVarFp + .createAttachment(createAttachmentRequest, options) + .then((request) => request(axios, basePath)); + }, + /** + * List attachments **Preview:** This is a preview API and is subject to change. + * @param {string} filterRelationshipId A relationship id to filter attachments for + * @param {'thread' | 'reply'} filterRelationshipType The type of relationship (reply or thread) + * @param {string} [pageCursor] The cursor for the next page of items. + * @param {number} [pageSize] The number of items to return. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listAttachments( + filterRelationshipId: string, + filterRelationshipType: 'thread' | 'reply', + pageCursor?: string, + pageSize?: number, + options?: any + ): AxiosPromise { + return localVarFp + .listAttachments( + filterRelationshipId, + filterRelationshipType, + pageCursor, + pageSize, + options + ) + .then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * Request parameters for createAttachment operation in AttachmentsApi. + * @export + * @interface AttachmentsApiCreateAttachmentRequest + */ +export interface AttachmentsApiCreateAttachmentRequest { + /** + * + * @type {CreateAttachmentRequest} + * @memberof AttachmentsApiCreateAttachment + */ + readonly createAttachmentRequest: CreateAttachmentRequest; +} + +/** + * Request parameters for listAttachments operation in AttachmentsApi. + * @export + * @interface AttachmentsApiListAttachmentsRequest + */ +export interface AttachmentsApiListAttachmentsRequest { + /** + * A relationship id to filter attachments for + * @type {string} + * @memberof AttachmentsApiListAttachments + */ + readonly filterRelationshipId: string; + + /** + * The type of relationship (reply or thread) + * @type {'thread' | 'reply'} + * @memberof AttachmentsApiListAttachments + */ + readonly filterRelationshipType: 'thread' | 'reply'; + + /** + * The cursor for the next page of items. + * @type {string} + * @memberof AttachmentsApiListAttachments + */ + readonly pageCursor?: string; + + /** + * The number of items to return. + * @type {number} + * @memberof AttachmentsApiListAttachments + */ + readonly pageSize?: number; +} + +/** + * AttachmentsApi - object-oriented interface + * @export + * @class AttachmentsApi + * @extends {BaseAPI} + */ +export class AttachmentsApi extends BaseAPI { + /** + * Create an `attachment` for a thread or a reply relationship. The content of the attachment can be a scene-view-state (created or provided), or a file. A file attachment requires the caller to upload the file after the attachment creation using a provided upload url. **Preview:** This is a preview API and is subject to change. + * @param {AttachmentsApiCreateAttachmentRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AttachmentsApi + */ + public createAttachment( + requestParameters: AttachmentsApiCreateAttachmentRequest, + options?: AxiosRequestConfig + ) { + return AttachmentsApiFp(this.configuration) + .createAttachment(requestParameters.createAttachmentRequest, options) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * List attachments **Preview:** This is a preview API and is subject to change. + * @param {AttachmentsApiListAttachmentsRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof AttachmentsApi + */ + public listAttachments( + requestParameters: AttachmentsApiListAttachmentsRequest, + options?: AxiosRequestConfig + ) { + return AttachmentsApiFp(this.configuration) + .listAttachments( + requestParameters.filterRelationshipId, + requestParameters.filterRelationshipType, + requestParameters.pageCursor, + requestParameters.pageSize, + options + ) + .then((request) => request(this.axios, this.basePath)); + } +} + /** * BatchesApi - axios parameter creator * @export @@ -12627,6 +13675,59 @@ export const CollaborationContextsApiAxiosParamCreator = function ( options: localVarRequestOptions, }; }, + /** + * Remove a collaboration context along with all of its data + * @param {string} id The `collaboration-context` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteCollaborationContext: async ( + id: string, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('deleteCollaborationContext', 'id', id); + const localVarPath = `/collaboration-contexts/{id}`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'DELETE', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * Get a `collaboration-context` by ID. * @param {string} id The `collaboration-context` ID. @@ -12805,6 +13906,27 @@ export const CollaborationContextsApiFp = function ( configuration ); }, + /** + * Remove a collaboration context along with all of its data + * @param {string} id The `collaboration-context` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteCollaborationContext( + id: string, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = + await localVarAxiosParamCreator.deleteCollaborationContext(id, options); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, /** * Get a `collaboration-context` by ID. * @param {string} id The `collaboration-context` ID. @@ -12903,6 +14025,17 @@ export const CollaborationContextsApiFactory = function ( .createCollaborationContext(createCollaborationContextRequest, options) .then((request) => request(axios, basePath)); }, + /** + * Remove a collaboration context along with all of its data + * @param {string} id The `collaboration-context` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteCollaborationContext(id: string, options?: any): AxiosPromise { + return localVarFp + .deleteCollaborationContext(id, options) + .then((request) => request(axios, basePath)); + }, /** * Get a `collaboration-context` by ID. * @param {string} id The `collaboration-context` ID. @@ -12971,6 +14104,20 @@ export interface CollaborationContextsApiCreateCollaborationContextRequest { readonly createCollaborationContextRequest: CreateCollaborationContextRequest; } +/** + * Request parameters for deleteCollaborationContext operation in CollaborationContextsApi. + * @export + * @interface CollaborationContextsApiDeleteCollaborationContextRequest + */ +export interface CollaborationContextsApiDeleteCollaborationContextRequest { + /** + * The `collaboration-context` ID. + * @type {string} + * @memberof CollaborationContextsApiDeleteCollaborationContext + */ + readonly id: string; +} + /** * Request parameters for getCollaborationContext operation in CollaborationContextsApi. * @export @@ -13052,6 +14199,22 @@ export class CollaborationContextsApi extends BaseAPI { .then((request) => request(this.axios, this.basePath)); } + /** + * Remove a collaboration context along with all of its data + * @param {CollaborationContextsApiDeleteCollaborationContextRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof CollaborationContextsApi + */ + public deleteCollaborationContext( + requestParameters: CollaborationContextsApiDeleteCollaborationContextRequest, + options?: AxiosRequestConfig + ) { + return CollaborationContextsApiFp(this.configuration) + .deleteCollaborationContext(requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + /** * Get a `collaboration-context` by ID. * @param {CollaborationContextsApiGetCollaborationContextRequest} requestParameters Request parameters. @@ -15092,7 +16255,75 @@ export const FilesApiAxiosParamCreator = function ( ...options.headers, }; localVarRequestOptions.data = serializeDataIfNeeded( - createFileRequest, + createFileRequest, + localVarRequestOptions, + configuration + ); + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Create an upload uri for a `file` by ID. + * @param {string} id The `file` ID. + * @param {CreateUploadRequest} createUploadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createUploadUrl: async ( + id: string, + createUploadRequest: CreateUploadRequest, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('createUploadUrl', 'id', id); + // verify required parameter 'createUploadRequest' is not null or undefined + assertParamExists( + 'createUploadUrl', + 'createUploadRequest', + createUploadRequest + ); + const localVarPath = `/files/{id}/upload-url`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'POST', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + localVarHeaderParameter['Content-Type'] = 'application/vnd.api+json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + localVarRequestOptions.data = serializeDataIfNeeded( + createUploadRequest, localVarRequestOptions, configuration ); @@ -15460,6 +16691,32 @@ export const FilesApiFp = function (configuration?: Configuration) { configuration ); }, + /** + * Create an upload uri for a `file` by ID. + * @param {string} id The `file` ID. + * @param {CreateUploadRequest} createUploadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async createUploadUrl( + id: string, + createUploadRequest: CreateUploadRequest, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.createUploadUrl( + id, + createUploadRequest, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, /** * Delete a `file`. * @param {string} id The `file` ID. @@ -15631,6 +16888,22 @@ export const FilesApiFactory = function ( .createFile(createFileRequest, options) .then((request) => request(axios, basePath)); }, + /** + * Create an upload uri for a `file` by ID. + * @param {string} id The `file` ID. + * @param {CreateUploadRequest} createUploadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + createUploadUrl( + id: string, + createUploadRequest: CreateUploadRequest, + options?: any + ): AxiosPromise { + return localVarFp + .createUploadUrl(id, createUploadRequest, options) + .then((request) => request(axios, basePath)); + }, /** * Delete a `file`. * @param {string} id The `file` ID. @@ -15737,6 +17010,27 @@ export interface FilesApiCreateFileRequest { readonly createFileRequest: CreateFileRequest; } +/** + * Request parameters for createUploadUrl operation in FilesApi. + * @export + * @interface FilesApiCreateUploadUrlRequest + */ +export interface FilesApiCreateUploadUrlRequest { + /** + * The `file` ID. + * @type {string} + * @memberof FilesApiCreateUploadUrl + */ + readonly id: string; + + /** + * + * @type {CreateUploadRequest} + * @memberof FilesApiCreateUploadUrl + */ + readonly createUploadRequest: CreateUploadRequest; +} + /** * Request parameters for deleteFile operation in FilesApi. * @export @@ -15878,6 +17172,26 @@ export class FilesApi extends BaseAPI { .then((request) => request(this.axios, this.basePath)); } + /** + * Create an upload uri for a `file` by ID. + * @param {FilesApiCreateUploadUrlRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof FilesApi + */ + public createUploadUrl( + requestParameters: FilesApiCreateUploadUrlRequest, + options?: AxiosRequestConfig + ) { + return FilesApiFp(this.configuration) + .createUploadUrl( + requestParameters.id, + requestParameters.createUploadRequest, + options + ) + .then((request) => request(this.axios, this.basePath)); + } + /** * Delete a `file`. * @param {FilesApiDeleteFileRequest} requestParameters Request parameters. @@ -18596,7 +19910,7 @@ export const PartRevisionInstancesApiAxiosParamCreator = function ( return { /** * Gets a page of \'part-revision\' instances. An instance is an occurrence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {*} [options] Override http request option. @@ -18673,7 +19987,7 @@ export const PartRevisionInstancesApiFp = function ( return { /** * Gets a page of \'part-revision\' instances. An instance is an occurrence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {*} [options] Override http request option. @@ -18720,7 +20034,7 @@ export const PartRevisionInstancesApiFactory = function ( return { /** * Gets a page of \'part-revision\' instances. An instance is an occurrence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {*} [options] Override http request option. @@ -18751,7 +20065,7 @@ export const PartRevisionInstancesApiFactory = function ( */ export interface PartRevisionInstancesApiGetPartRevisionInstanceListRequest { /** - * Parent ID to filter on. + * Parent ID to filter on. Sending null will return items without a parent. * @type {string} * @memberof PartRevisionInstancesApiGetPartRevisionInstanceList */ @@ -22018,6 +23332,59 @@ export const RepliesApiAxiosParamCreator = function ( options: localVarRequestOptions, }; }, + /** + * Remove a reply. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteReply: async ( + id: string, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('deleteReply', 'id', id); + const localVarPath = `/replies/{id}`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'DELETE', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * Get a `reply`. * @param {string} id The `thread` ID. @@ -22142,6 +23509,74 @@ export const RepliesApiAxiosParamCreator = function ( ...options.headers, }; + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update a `reply`. + * @param {string} id The `thread` ID. + * @param {UpdateReplyRequest} updateReplyRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateReply: async ( + id: string, + updateReplyRequest: UpdateReplyRequest, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('updateReply', 'id', id); + // verify required parameter 'updateReplyRequest' is not null or undefined + assertParamExists( + 'updateReply', + 'updateReplyRequest', + updateReplyRequest + ); + const localVarPath = `/replies/{id}`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'PATCH', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + localVarHeaderParameter['Content-Type'] = 'application/vnd.api+json'; + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + localVarRequestOptions.data = serializeDataIfNeeded( + updateReplyRequest, + localVarRequestOptions, + configuration + ); + return { url: toPathString(localVarUrlObj), options: localVarRequestOptions, @@ -22183,6 +23618,29 @@ export const RepliesApiFp = function (configuration?: Configuration) { configuration ); }, + /** + * Remove a reply. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteReply( + id: string, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteReply( + id, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, /** * Get a `reply`. * @param {string} id The `thread` ID. @@ -22241,6 +23699,32 @@ export const RepliesApiFp = function (configuration?: Configuration) { configuration ); }, + /** + * Update a `reply`. + * @param {string} id The `thread` ID. + * @param {UpdateReplyRequest} updateReplyRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateReply( + id: string, + updateReplyRequest: UpdateReplyRequest, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateReply( + id, + updateReplyRequest, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, }; }; @@ -22271,6 +23755,17 @@ export const RepliesApiFactory = function ( .createReply(id, createReplyRequest, options) .then((request) => request(axios, basePath)); }, + /** + * Remove a reply. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteReply(id: string, options?: any): AxiosPromise { + return localVarFp + .deleteReply(id, options) + .then((request) => request(axios, basePath)); + }, /** * Get a `reply`. * @param {string} id The `thread` ID. @@ -22303,6 +23798,22 @@ export const RepliesApiFactory = function ( .listReplies(filterThreadId, pageCursor, pageSize, include, options) .then((request) => request(axios, basePath)); }, + /** + * Update a `reply`. + * @param {string} id The `thread` ID. + * @param {UpdateReplyRequest} updateReplyRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateReply( + id: string, + updateReplyRequest: UpdateReplyRequest, + options?: any + ): AxiosPromise { + return localVarFp + .updateReply(id, updateReplyRequest, options) + .then((request) => request(axios, basePath)); + }, }; }; @@ -22327,6 +23838,20 @@ export interface RepliesApiCreateReplyRequest { readonly createReplyRequest: CreateReplyRequest; } +/** + * Request parameters for deleteReply operation in RepliesApi. + * @export + * @interface RepliesApiDeleteReplyRequest + */ +export interface RepliesApiDeleteReplyRequest { + /** + * The `thread` ID. + * @type {string} + * @memberof RepliesApiDeleteReply + */ + readonly id: string; +} + /** * Request parameters for getReply operation in RepliesApi. * @export @@ -22373,14 +23898,35 @@ export interface RepliesApiListRepliesRequest { * @type {number} * @memberof RepliesApiListReplies */ - readonly pageSize?: number; + readonly pageSize?: number; + + /** + * Comma-separated list of relationships to include in response. + * @type {string} + * @memberof RepliesApiListReplies + */ + readonly include?: string; +} + +/** + * Request parameters for updateReply operation in RepliesApi. + * @export + * @interface RepliesApiUpdateReplyRequest + */ +export interface RepliesApiUpdateReplyRequest { + /** + * The `thread` ID. + * @type {string} + * @memberof RepliesApiUpdateReply + */ + readonly id: string; /** - * Comma-separated list of relationships to include in response. - * @type {string} - * @memberof RepliesApiListReplies + * + * @type {UpdateReplyRequest} + * @memberof RepliesApiUpdateReply */ - readonly include?: string; + readonly updateReplyRequest: UpdateReplyRequest; } /** @@ -22410,6 +23956,22 @@ export class RepliesApi extends BaseAPI { .then((request) => request(this.axios, this.basePath)); } + /** + * Remove a reply. + * @param {RepliesApiDeleteReplyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RepliesApi + */ + public deleteReply( + requestParameters: RepliesApiDeleteReplyRequest, + options?: AxiosRequestConfig + ) { + return RepliesApiFp(this.configuration) + .deleteReply(requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + /** * Get a `reply`. * @param {RepliesApiGetReplyRequest} requestParameters Request parameters. @@ -22447,6 +24009,26 @@ export class RepliesApi extends BaseAPI { ) .then((request) => request(this.axios, this.basePath)); } + + /** + * Update a `reply`. + * @param {RepliesApiUpdateReplyRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RepliesApi + */ + public updateReply( + requestParameters: RepliesApiUpdateReplyRequest, + options?: AxiosRequestConfig + ) { + return RepliesApiFp(this.configuration) + .updateReply( + requestParameters.id, + requestParameters.updateReplyRequest, + options + ) + .then((request) => request(this.axios, this.basePath)); + } } /** @@ -24789,7 +26371,7 @@ export const SceneItemsApiAxiosParamCreator = function ( * @param {number} [pageSize] The number of items to return. * @param {string} [filterSource] Source ID to filter on. * @param {string} [filterSuppliedId] Comma-separated list of supplied IDs to filter on. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {boolean} [filterHasChildren] Filter scene-items based on whether they are the parent of at least one other scene-item * @param {boolean} [filterHasGeometrySet] Filter scene-items based on whether they have an associated geometry-set. * @param {string} [sort] A sort to apply to the collection. A \"minus\" prefixed before the field name is used to specify descending sort order. @@ -25086,7 +26668,7 @@ export const SceneItemsApiFp = function (configuration?: Configuration) { * @param {number} [pageSize] The number of items to return. * @param {string} [filterSource] Source ID to filter on. * @param {string} [filterSuppliedId] Comma-separated list of supplied IDs to filter on. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {boolean} [filterHasChildren] Filter scene-items based on whether they are the parent of at least one other scene-item * @param {boolean} [filterHasGeometrySet] Filter scene-items based on whether they have an associated geometry-set. * @param {string} [sort] A sort to apply to the collection. A \"minus\" prefixed before the field name is used to specify descending sort order. @@ -25241,7 +26823,7 @@ export const SceneItemsApiFactory = function ( * @param {number} [pageSize] The number of items to return. * @param {string} [filterSource] Source ID to filter on. * @param {string} [filterSuppliedId] Comma-separated list of supplied IDs to filter on. - * @param {string} [filterParent] Parent ID to filter on. + * @param {string} [filterParent] Parent ID to filter on. Sending null will return items without a parent. * @param {boolean} [filterHasChildren] Filter scene-items based on whether they are the parent of at least one other scene-item * @param {boolean} [filterHasGeometrySet] Filter scene-items based on whether they have an associated geometry-set. * @param {string} [sort] A sort to apply to the collection. A \"minus\" prefixed before the field name is used to specify descending sort order. @@ -25420,7 +27002,7 @@ export interface SceneItemsApiGetSceneItemsRequest { readonly filterSuppliedId?: string; /** - * Parent ID to filter on. + * Parent ID to filter on. Sending null will return items without a parent. * @type {string} * @memberof SceneItemsApiGetSceneItems */ @@ -30132,6 +31714,59 @@ export const ThreadsApiAxiosParamCreator = function ( options: localVarRequestOptions, }; }, + /** + * Remove a thread. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteThread: async ( + id: string, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('deleteThread', 'id', id); + const localVarPath = `/threads/{id}`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'DELETE', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * Get a `thread`. * @param {string} id The `thread` ID. @@ -30257,6 +31892,7 @@ export const ThreadsApiAxiosParamCreator = function ( * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {string} [include] Comma-separated list of relationships to include in response. + * @param {Array} [filterThreadStatus] The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -30266,6 +31902,7 @@ export const ThreadsApiAxiosParamCreator = function ( pageCursor?: string, pageSize?: number, include?: string, + filterThreadStatus?: Array, options: AxiosRequestConfig = {} ): Promise => { const localVarPath = `/threads`; @@ -30314,6 +31951,74 @@ export const ThreadsApiAxiosParamCreator = function ( localVarQueryParameter['include'] = include; } + if (filterThreadStatus) { + localVarQueryParameter['filter[threadStatus]'] = + filterThreadStatus.join(COLLECTION_FORMATS.csv); + } + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions?.headers ?? {}; + localVarRequestOptions.headers = { + ...localVarHeaderParameter, + ...headersFromBaseOptions, + ...options.headers, + }; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * Update a `thread`. + * @param {string} id The `thread` ID. + * @param {UpdateThreadRequest} updateThreadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateThread: async ( + id: string, + updateThreadRequest: UpdateThreadRequest, + options: AxiosRequestConfig = {} + ): Promise => { + // verify required parameter 'id' is not null or undefined + assertParamExists('updateThread', 'id', id); + // verify required parameter 'updateThreadRequest' is not null or undefined + assertParamExists( + 'updateThread', + 'updateThreadRequest', + updateThreadRequest + ); + const localVarPath = `/threads/{id}`.replace( + `{${'id'}}`, + encodeURIComponent(String(id)) + ); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { + method: 'PATCH', + ...baseOptions, + ...options, + }; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + // authentication OAuth2 required + // oauth required + await setOAuthToObject( + localVarHeaderParameter, + 'OAuth2', + [], + configuration + ); + + localVarHeaderParameter['Content-Type'] = 'application/vnd.api+json'; + setSearchParams(localVarUrlObj, localVarQueryParameter); let headersFromBaseOptions = baseOptions?.headers ?? {}; localVarRequestOptions.headers = { @@ -30321,6 +32026,11 @@ export const ThreadsApiAxiosParamCreator = function ( ...headersFromBaseOptions, ...options.headers, }; + localVarRequestOptions.data = serializeDataIfNeeded( + updateThreadRequest, + localVarRequestOptions, + configuration + ); return { url: toPathString(localVarUrlObj), @@ -30363,6 +32073,29 @@ export const ThreadsApiFp = function (configuration?: Configuration) { configuration ); }, + /** + * Remove a thread. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async deleteThread( + id: string, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.deleteThread( + id, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, /** * Get a `thread`. * @param {string} id The `thread` ID. @@ -30420,6 +32153,7 @@ export const ThreadsApiFp = function (configuration?: Configuration) { * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {string} [include] Comma-separated list of relationships to include in response. + * @param {Array} [filterThreadStatus] The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -30429,6 +32163,7 @@ export const ThreadsApiFp = function (configuration?: Configuration) { pageCursor?: string, pageSize?: number, include?: string, + filterThreadStatus?: Array, options?: AxiosRequestConfig ): Promise< (axios?: AxiosInstance, basePath?: string) => AxiosPromise @@ -30439,6 +32174,33 @@ export const ThreadsApiFp = function (configuration?: Configuration) { pageCursor, pageSize, include, + filterThreadStatus, + options + ); + return createRequestFunction( + localVarAxiosArgs, + globalAxios, + BASE_PATH, + configuration + ); + }, + /** + * Update a `thread`. + * @param {string} id The `thread` ID. + * @param {UpdateThreadRequest} updateThreadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async updateThread( + id: string, + updateThreadRequest: UpdateThreadRequest, + options?: AxiosRequestConfig + ): Promise< + (axios?: AxiosInstance, basePath?: string) => AxiosPromise + > { + const localVarAxiosArgs = await localVarAxiosParamCreator.updateThread( + id, + updateThreadRequest, options ); return createRequestFunction( @@ -30478,6 +32240,17 @@ export const ThreadsApiFactory = function ( .createThread(id, createThreadRequest, options) .then((request) => request(axios, basePath)); }, + /** + * Remove a thread. + * @param {string} id The `thread` ID. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + deleteThread(id: string, options?: any): AxiosPromise { + return localVarFp + .deleteThread(id, options) + .then((request) => request(axios, basePath)); + }, /** * Get a `thread`. * @param {string} id The `thread` ID. @@ -30514,6 +32287,7 @@ export const ThreadsApiFactory = function ( * @param {string} [pageCursor] The cursor for the next page of items. * @param {number} [pageSize] The number of items to return. * @param {string} [include] Comma-separated list of relationships to include in response. + * @param {Array} [filterThreadStatus] The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. * @param {*} [options] Override http request option. * @throws {RequiredError} */ @@ -30523,6 +32297,7 @@ export const ThreadsApiFactory = function ( pageCursor?: string, pageSize?: number, include?: string, + filterThreadStatus?: Array, options?: any ): AxiosPromise { return localVarFp @@ -30532,10 +32307,27 @@ export const ThreadsApiFactory = function ( pageCursor, pageSize, include, + filterThreadStatus, options ) .then((request) => request(axios, basePath)); }, + /** + * Update a `thread`. + * @param {string} id The `thread` ID. + * @param {UpdateThreadRequest} updateThreadRequest + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + updateThread( + id: string, + updateThreadRequest: UpdateThreadRequest, + options?: any + ): AxiosPromise { + return localVarFp + .updateThread(id, updateThreadRequest, options) + .then((request) => request(axios, basePath)); + }, }; }; @@ -30560,6 +32352,20 @@ export interface ThreadsApiCreateThreadRequest { readonly createThreadRequest: CreateThreadRequest; } +/** + * Request parameters for deleteThread operation in ThreadsApi. + * @export + * @interface ThreadsApiDeleteThreadRequest + */ +export interface ThreadsApiDeleteThreadRequest { + /** + * The `thread` ID. + * @type {string} + * @memberof ThreadsApiDeleteThread + */ + readonly id: string; +} + /** * Request parameters for getThread operation in ThreadsApi. * @export @@ -30642,6 +32448,34 @@ export interface ThreadsApiGetThreadsRequest { * @memberof ThreadsApiGetThreads */ readonly include?: string; + + /** + * The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. + * @type {Array} + * @memberof ThreadsApiGetThreads + */ + readonly filterThreadStatus?: Array; +} + +/** + * Request parameters for updateThread operation in ThreadsApi. + * @export + * @interface ThreadsApiUpdateThreadRequest + */ +export interface ThreadsApiUpdateThreadRequest { + /** + * The `thread` ID. + * @type {string} + * @memberof ThreadsApiUpdateThread + */ + readonly id: string; + + /** + * + * @type {UpdateThreadRequest} + * @memberof ThreadsApiUpdateThread + */ + readonly updateThreadRequest: UpdateThreadRequest; } /** @@ -30671,6 +32505,22 @@ export class ThreadsApi extends BaseAPI { .then((request) => request(this.axios, this.basePath)); } + /** + * Remove a thread. + * @param {ThreadsApiDeleteThreadRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ThreadsApi + */ + public deleteThread( + requestParameters: ThreadsApiDeleteThreadRequest, + options?: AxiosRequestConfig + ) { + return ThreadsApiFp(this.configuration) + .deleteThread(requestParameters.id, options) + .then((request) => request(this.axios, this.basePath)); + } + /** * Get a `thread`. * @param {ThreadsApiGetThreadRequest} requestParameters Request parameters. @@ -30726,6 +32576,27 @@ export class ThreadsApi extends BaseAPI { requestParameters.pageCursor, requestParameters.pageSize, requestParameters.include, + requestParameters.filterThreadStatus, + options + ) + .then((request) => request(this.axios, this.basePath)); + } + + /** + * Update a `thread`. + * @param {ThreadsApiUpdateThreadRequest} requestParameters Request parameters. + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof ThreadsApi + */ + public updateThread( + requestParameters: ThreadsApiUpdateThreadRequest, + options?: AxiosRequestConfig + ) { + return ThreadsApiFp(this.configuration) + .updateThread( + requestParameters.id, + requestParameters.updateThreadRequest, options ) .then((request) => request(this.axios, this.basePath)); diff --git a/client/version.ts b/client/version.ts index 025feba..cb7a16e 100644 --- a/client/version.ts +++ b/client/version.ts @@ -1 +1 @@ -export const version = '0.34.0'; +export const version = '0.35.0'; diff --git a/package.json b/package.json index c5cfabf..1a082a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vertexvis/api-client-node", - "version": "0.34.0", + "version": "0.35.0", "description": "The Vertex REST API client for Node.js.", "license": "MIT", "author": "Vertex Developers (https://developer.vertexvis.com)", diff --git a/scripts/generate.sh b/scripts/generate.sh index f6ccbb8..1c93a95 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -15,7 +15,7 @@ docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli:v5.4.0 gen --config /local/config.yml \ --output /local -sed_inplace "s/, COLLECTION_FORMATS, /, /" api.ts +sed_inplace "s/, RequiredError }/ }/" api.ts sed_inplace "s/, setApiKeyToObject, /, /" api.ts sed_inplace "s/, setBearerAuthToObject, /, /" api.ts sed_inplace "s/baseOptions && baseOptions.headers ? baseOptions.headers :/baseOptions?.headers ??/" api.ts diff --git a/spec.yml b/spec.yml index 7cba270..0789895 100644 --- a/spec.yml +++ b/spec.yml @@ -28,6 +28,8 @@ servers: tags: - name: accounts - name: applications + - description: Requires Engage Module + name: attachments - name: batches - description: Requires Engage Module name: collaboration-contexts @@ -720,6 +722,162 @@ paths: - OAuth2: [] tags: - applications + /attachments: + get: + description: | + List attachments + **Preview:** This is a preview API and is subject to change. + operationId: listAttachments + parameters: + - description: A relationship id to filter attachments for + explode: true + in: query + name: filter[relationshipId] + required: true + schema: + example: some-id-1 + maxLength: 1024 + type: string + style: form + - description: The type of relationship (reply or thread) + explode: true + in: query + name: filter[relationshipType] + required: true + schema: + enum: + - thread + - reply + example: thread + type: string + style: form + - description: The cursor for the next page of items. + explode: true + in: query + name: page[cursor] + required: false + schema: + example: cHJkMDVFR2RLag== + type: string + style: form + - description: The number of items to return. + explode: true + in: query + name: page[size] + required: false + schema: + example: 10 + format: int32 + maximum: 200 + minimum: 1 + type: integer + style: form + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AttachmentList' + description: OK + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + '415': + content: + application/vnd.api+json: + example: + errors: + - status: '415' + code: UnsupportedMediaType + title: + The provided media type is not supported. Update the Content-Type + header to application/vnd.api+json and try again. + schema: + $ref: '#/components/schemas/Failure' + description: Unsupported Media Type + security: + - OAuth2: [] + tags: + - attachments + post: + description: | + Create an `attachment` for a thread or a reply relationship. The content of the attachment can be a scene-view-state (created or provided), or a file. A file attachment requires the caller to upload the file after the attachment creation using a provided upload url. + **Preview:** This is a preview API and is subject to change. + operationId: createAttachment + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/CreateAttachmentRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/Attachment' + description: Created + headers: + location: + $ref: '#/components/headers/Location' + '400': + content: + application/vnd.api+json: + example: + errors: + - status: '400' + code: BadRequest + title: Invalid, missing, or out-of-range request parameters. + schema: + $ref: '#/components/schemas/Failure' + description: Bad Request + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '415': + content: + application/vnd.api+json: + example: + errors: + - status: '415' + code: UnsupportedMediaType + title: + The provided media type is not supported. Update the Content-Type + header to application/vnd.api+json and try again. + schema: + $ref: '#/components/schemas/Failure' + description: Unsupported Media Type + security: + - OAuth2: [] + tags: + - attachments /batches: post: description: @@ -1034,6 +1192,47 @@ paths: tags: - collaboration-contexts /collaboration-contexts/{id}: + delete: + description: Remove a collaboration context along with all of its data + operationId: deleteCollaborationContext + parameters: + - description: The `collaboration-context` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple + responses: + '204': + description: No Content + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + security: + - OAuth2: [] + tags: + - collaboration-contexts get: description: Get a `collaboration-context` by ID. operationId: getCollaborationContext @@ -1222,6 +1421,47 @@ paths: tags: - threads /threads/{id}: + delete: + description: Remove a thread. + operationId: deleteThread + parameters: + - description: The `thread` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple + responses: + '204': + description: No Content + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + security: + - OAuth2: [] + tags: + - threads get: description: Get a `thread`. operationId: getThread @@ -1303,6 +1543,70 @@ paths: - OAuth2: [] tags: - threads + patch: + description: Update a `thread`. + operationId: updateThread + parameters: + - description: The `thread` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UpdateThreadRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/Thread' + description: OK + '400': + content: + application/vnd.api+json: + example: + errors: + - status: '400' + code: BadRequest + title: Invalid, missing, or out-of-range request parameters. + schema: + $ref: '#/components/schemas/Failure' + description: Bad Request + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '415': + content: + application/vnd.api+json: + example: + errors: + - status: '415' + code: UnsupportedMediaType + title: + The provided media type is not supported. Update the Content-Type + header to application/vnd.api+json and try again. + schema: + $ref: '#/components/schemas/Failure' + description: Unsupported Media Type + security: + - OAuth2: [] + tags: + - threads /threads/{id}/users: get: description: Get a `thread`s `user`s. @@ -1421,6 +1725,17 @@ paths: maxLength: 32 type: string style: form + - description: | + The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. + explode: false + in: query + name: filter[threadStatus] + required: false + schema: + items: + $ref: '#/components/schemas/ThreadStatus' + type: array + style: form responses: '200': content: @@ -1854,6 +2169,71 @@ paths: - OAuth2: [] tags: - files + /files/{id}/upload-url: + post: + description: Create an upload uri for a `file` by ID. + operationId: createUploadUrl + parameters: + - description: The `file` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/CreateUploadRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UploadUrl' + description: Created + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + '415': + content: + application/vnd.api+json: + example: + errors: + - status: '415' + code: UnsupportedMediaType + title: + The provided media type is not supported. Update the Content-Type + header to application/vnd.api+json and try again. + schema: + $ref: '#/components/schemas/Failure' + description: Unsupported Media Type + security: + - OAuth2: [] + tags: + - files /files/{id}/download-url: post: description: Create a download uri for a `file` by ID. @@ -2661,12 +3041,122 @@ paths: name: page[size] required: false schema: - example: 10 - format: int32 - maximum: 200 - minimum: 1 - type: integer - style: form + example: 10 + format: int32 + maximum: 200 + minimum: 1 + type: integer + style: form + - description: Comma-separated list of relationships to include in response. + explode: true + in: query + name: include + required: false + schema: + example: user + maxLength: 32 + type: string + style: form + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ReplyList' + description: OK + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + '415': + content: + application/vnd.api+json: + example: + errors: + - status: '415' + code: UnsupportedMediaType + title: + The provided media type is not supported. Update the Content-Type + header to application/vnd.api+json and try again. + schema: + $ref: '#/components/schemas/Failure' + description: Unsupported Media Type + security: + - OAuth2: [] + tags: + - replies + /replies/{id}: + delete: + description: Remove a reply. + operationId: deleteReply + parameters: + - description: The `thread` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple + responses: + '204': + description: No Content + '401': + content: + application/vnd.api+json: + example: + errors: + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. + schema: + $ref: '#/components/schemas/Failure' + description: Unauthorized + '404': + content: + application/vnd.api+json: + example: + errors: + - status: '404' + code: NotFound + title: The requested resource was not found. + schema: + $ref: '#/components/schemas/Failure' + description: Not Found + security: + - OAuth2: [] + tags: + - replies + get: + description: Get a `reply`. + operationId: getReply + parameters: + - description: The `thread` ID. + explode: false + in: path + name: id + required: true + schema: + $ref: '#/components/schemas/Uuid' + style: simple - description: Comma-separated list of relationships to include in response. explode: true in: query @@ -2682,30 +3172,30 @@ paths: content: application/vnd.api+json: schema: - $ref: '#/components/schemas/ReplyList' + $ref: '#/components/schemas/Reply' description: OK - '401': + '400': content: application/vnd.api+json: example: errors: - - status: '401' - code: Unauthorized - title: Invalid or missing credentials. + - status: '400' + code: BadRequest + title: Invalid, missing, or out-of-range request parameters. schema: $ref: '#/components/schemas/Failure' - description: Unauthorized - '404': + description: Bad Request + '401': content: application/vnd.api+json: example: errors: - - status: '404' - code: NotFound - title: The requested resource was not found. + - status: '401' + code: Unauthorized + title: Invalid or missing credentials. schema: $ref: '#/components/schemas/Failure' - description: Not Found + description: Unauthorized '415': content: application/vnd.api+json: @@ -2723,10 +3213,9 @@ paths: - OAuth2: [] tags: - replies - /replies/{id}: - get: - description: Get a `reply`. - operationId: getReply + patch: + description: Update a `reply`. + operationId: updateReply parameters: - description: The `thread` ID. explode: false @@ -2736,16 +3225,12 @@ paths: schema: $ref: '#/components/schemas/Uuid' style: simple - - description: Comma-separated list of relationships to include in response. - explode: true - in: query - name: include - required: false - schema: - example: user - maxLength: 32 - type: string - style: form + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UpdateReplyRequest' + required: true responses: '200': content: @@ -3846,16 +4331,22 @@ paths: Gets a page of 'part-revision' instances. An instance is an occurrence of a revision that is a child of a parent revision. The returned data will have the ordinal used for ordering and the transform matrix for each occurrence. operationId: getPartRevisionInstanceList parameters: - - description: Parent ID to filter on. + - description: + Parent ID to filter on. Sending null will return items without + a parent. explode: true in: query name: filter[parent] required: false schema: - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 - format: uuid - maxLength: 36 - type: string + oneOf: + - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + - enum: + - 'null' + type: string style: form - description: The cursor for the next page of items. explode: true @@ -5752,16 +6243,22 @@ paths: maxLength: 1024 type: string style: form - - description: Parent ID to filter on. + - description: + Parent ID to filter on. Sending null will return items without + a parent. explode: true in: query name: filter[parent] required: false schema: - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 - format: uuid - maxLength: 36 - type: string + oneOf: + - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + - enum: + - 'null' + type: string style: form - description: Filter scene-items based on whether they are the parent of at @@ -10233,6 +10730,30 @@ components: schema: $ref: '#/components/schemas/FilterExpression' style: form + RelationshipIdFilter: + description: A relationship id to filter attachments for + explode: true + in: query + name: filter[relationshipId] + required: true + schema: + example: some-id-1 + maxLength: 1024 + type: string + style: form + RelationshipTypeFilter: + description: The type of relationship (reply or thread) + explode: true + in: query + name: filter[relationshipType] + required: true + schema: + enum: + - thread + - reply + example: thread + type: string + style: form ExportId: description: The `export` ID. explode: false @@ -10687,6 +11208,18 @@ components: maxLength: 36 type: string style: form + ThreadStatusFilter: + description: | + The statuses of a thread to filter by. Send as a CSV list, e.g. open,resolved. + explode: false + in: query + name: filter[threadStatus] + required: false + schema: + items: + $ref: '#/components/schemas/ThreadStatus' + type: array + style: form PropertyEntriesResourceIdFilter: description: A resource ID to filter on explode: true @@ -10811,16 +11344,22 @@ components: type: string style: form ParentIdFilter: - description: Parent ID to filter on. + description: + Parent ID to filter on. Sending null will return items without + a parent. explode: true in: query name: filter[parent] required: false schema: - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 - format: uuid - maxLength: 36 - type: string + oneOf: + - example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + - enum: + - 'null' + type: string style: form StreamKeyFilter: description: Stream key to filter on. @@ -11050,6 +11589,41 @@ components: required: - data type: object + AttachmentList: + additionalProperties: false + properties: + data: + items: + $ref: '#/components/schemas/AttachmentData' + type: array + links: + additionalProperties: + $ref: '#/components/schemas/Link' + type: object + required: + - data + - links + type: object + CreateAttachmentRequest: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/CreateAttachmentRequest_data' + required: + - data + type: object + Attachment: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/AttachmentData' + links: + additionalProperties: + $ref: '#/components/schemas/Link' + type: object + required: + - data + type: object CreateBatchRequest: additionalProperties: false properties: @@ -11156,6 +11730,14 @@ components: required: - data type: object + UpdateThreadRequest: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/UpdateThreadRequest_data' + required: + - data + type: object UserList: additionalProperties: false properties: @@ -11171,6 +11753,11 @@ components: - data - links type: object + ThreadStatus: + enum: + - open + - resolved + type: string ThreadList: additionalProperties: false properties: @@ -11233,6 +11820,26 @@ components: required: - data type: object + CreateUploadRequest: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/CreateUploadRequest_data' + required: + - data + type: object + UploadUrl: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/UploadUrlData' + links: + additionalProperties: + $ref: '#/components/schemas/Link' + type: object + required: + - data + type: object CreateDownloadRequest: additionalProperties: false properties: @@ -11384,6 +11991,14 @@ components: required: - data type: object + UpdateReplyRequest: + additionalProperties: false + properties: + data: + $ref: '#/components/schemas/UpdateReplyRequest_data' + required: + - data + type: object CreateReplyRequest: additionalProperties: false properties: @@ -12623,11 +13238,103 @@ components: additionalProperties: type: string type: object - ApplicationData: + ApplicationData: + additionalProperties: false + properties: + type: + example: application + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + attributes: + $ref: '#/components/schemas/ApplicationData_attributes' + links: + additionalProperties: + $ref: '#/components/schemas/Link' + type: object + required: + - attributes + - id + - type + type: object + AttachmentData: + additionalProperties: false + properties: + type: + example: attachment + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + attributes: + $ref: '#/components/schemas/AttachmentData_attributes' + required: + - attributes + - id + - type + type: object + WithFileContent: + additionalProperties: false + properties: + type: + enum: + - file-content + type: string + name: + description: The name of the file to create + example: text.foo + type: string + required: + - name + - type + type: object + WithSceneViewStateContent: + additionalProperties: false + properties: + type: + enum: + - scene-view-state-content + type: string + withSceneViewState: + discriminator: + propertyName: type + oneOf: + - $ref: '#/components/schemas/WithSceneViewId' + - $ref: '#/components/schemas/WithSceneViewStateId' + required: + - type + - withSceneViewState + type: object + WithThread: + additionalProperties: false + properties: + type: + enum: + - thread + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + required: + - id + - type + type: object + WithReply: additionalProperties: false properties: type: - example: application + enum: + - reply type: string id: description: ID of the resource. @@ -12635,14 +13342,7 @@ components: format: uuid maxLength: 36 type: string - attributes: - $ref: '#/components/schemas/ApplicationData_attributes' - links: - additionalProperties: - $ref: '#/components/schemas/Link' - type: object required: - - attributes - id - type type: object @@ -12762,11 +13462,6 @@ components: - comment - issue type: string - ThreadStatus: - enum: - - open - - resolved - type: string CreateSceneReference: additionalProperties: false description: A reference to a scene to be created for a thread. @@ -12870,6 +13565,29 @@ components: - id - type type: object + UploadUrlData: + additionalProperties: false + properties: + type: + example: upload-url + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + attributes: + $ref: '#/components/schemas/UploadUrlData_attributes' + links: + additionalProperties: + $ref: '#/components/schemas/Link' + type: object + required: + - attributes + - id + - type + type: object DownloadUrlData: additionalProperties: false properties: @@ -13306,12 +14024,35 @@ components: - id - type type: object - PartAssemblyRelationship: + PartInstancesRelationship: + additionalProperties: false + description: Part Revision Assembly Instance Data + properties: + data: + description: | + Each child must include the UUID of the revision. The optional transform may be included to position the child relative to the parent. See the Matrix4 schema for details. Note: The children will be ordered as they appear in the array. Also, it is suggested to not include the transform for any that has identity transform to keep the payload size small. Example file content: { + "children": [ + { "id": "00000000-0000-0000-0000-000000000001" }, + { "id": "00000000-0000-0000-0000-000000000002", "transform": { + "r0": {"x": 1, "y": -1, "z": 0, "w": 123.4 }, + "r1": {"x": 1, "y": 1, "z": 0, "w": 234.5 }, + "r2": {"x": 0, "y": 0, "z": 1, "w": 345.6 }, + "r3": {"x": 0, "y": 0, "z": 0, "w": 1 } + }} + ] + } + items: + $ref: '#/components/schemas/PartInstancesRelationship_data' + type: array + required: + - data + type: object + DeprecatedPartAssemblyRelationship: additionalProperties: false description: Create Part Assembly properties: data: - $ref: '#/components/schemas/PartAssemblyRelationship_data' + $ref: '#/components/schemas/DeprecatedPartAssemblyRelationship_data' required: - data type: object @@ -14248,6 +14989,8 @@ components: type: string attributes: $ref: '#/components/schemas/ExportData_attributes' + relationships: + $ref: '#/components/schemas/ExportData_relationships' links: additionalProperties: $ref: '#/components/schemas/Link' @@ -14490,14 +15233,39 @@ components: required: - href type: object - AccountRelationship: + FileAttachment: additionalProperties: false - description: Relationship to an `account`. properties: - data: - $ref: '#/components/schemas/AccountRelationship_data' + type: + enum: + - file + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string required: - - data + - id + - type + type: object + SceneViewStateAttachment: + additionalProperties: false + properties: + type: + enum: + - scene-view-state + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + required: + - id + - type type: object WithSceneViewId: additionalProperties: false @@ -14535,6 +15303,15 @@ components: - sceneViewStateId - type type: object + AccountRelationship: + additionalProperties: false + description: Relationship to an `account`. + properties: + data: + $ref: '#/components/schemas/AccountRelationship_data' + required: + - data + type: object SceneReference: additionalProperties: false description: A reference to a scene for a thread. @@ -14712,10 +15489,13 @@ components: maxLength: 36 type: string suppliedRevisionId: - example: some-string - maxLength: 1024 - minLength: 1 - type: string + allOf: + - $ref: '#/components/schemas/NonEmptyString' + deprecated: true + description: + This has been deprecated. Use instead the revisionId to reference + the revision instance. The revisionId can be found by using the [List + Part Revisions](#tag/part-revisions/operation/getPartRevisions) endpoint. transform: $ref: '#/components/schemas/Matrix4' required: @@ -15715,6 +16495,45 @@ components: - attributes - type type: object + CreateAttachmentRequest_data_attributes: + properties: + withContent: + discriminator: + propertyName: type + oneOf: + - $ref: '#/components/schemas/WithFileContent' + - $ref: '#/components/schemas/WithSceneViewStateContent' + required: + - withContent + type: object + CreateAttachmentRequest_data_relationships: + properties: + context: + discriminator: + propertyName: type + oneOf: + - $ref: '#/components/schemas/WithThread' + - $ref: '#/components/schemas/WithReply' + required: + - context + type: object + CreateAttachmentRequest_data: + properties: + type: + description: Resource object type. + enum: + - attachment + example: attachment + type: string + attributes: + $ref: '#/components/schemas/CreateAttachmentRequest_data_attributes' + relationships: + $ref: '#/components/schemas/CreateAttachmentRequest_data_relationships' + required: + - attributes + - relationships + - type + type: object CreateCollaborationContextRequest_data: properties: type: @@ -15735,6 +16554,8 @@ components: type: string body: type: string + isDrafting: + type: boolean reference: discriminator: propertyName: type @@ -15758,6 +16579,32 @@ components: - attributes - type type: object + UpdateThreadRequest_data_attributes: + properties: + status: + $ref: '#/components/schemas/ThreadStatus' + title: + nullable: true + type: string + isDrafting: + type: boolean + body: + nullable: true + type: string + type: object + UpdateThreadRequest_data: + properties: + type: + description: Resource object type. + example: thread + maxLength: 32 + type: string + attributes: + $ref: '#/components/schemas/UpdateThreadRequest_data_attributes' + required: + - attributes + - type + type: object CreateFileRequest_data_attributes: properties: name: @@ -15840,6 +16687,32 @@ components: - attributes - type type: object + CreateUploadRequest_data_attributes: + properties: + expiry: + description: + Specifies the duration for which this pre-signed request should + be valid for upload. After this time has expired, attempting to use the + presigned request will fail. (Defaults to 1 hour, max value is 24 hours) + example: 3600 + format: int32 + maximum: 86400 + minimum: 1 + type: integer + type: object + CreateUploadRequest_data: + properties: + type: + description: Resource object type. + example: upload-url + maxLength: 32 + type: string + attributes: + $ref: '#/components/schemas/CreateUploadRequest_data_attributes' + required: + - attributes + - type + type: object CreateDownloadRequest_data_attributes: properties: expiry: @@ -15980,10 +16853,33 @@ components: - relationships - type type: object + UpdateReplyRequest_data_attributes: + properties: + body: + nullable: true + type: string + isDrafting: + type: boolean + type: object + UpdateReplyRequest_data: + properties: + type: + description: Resource object type. + example: reply + maxLength: 32 + type: string + attributes: + $ref: '#/components/schemas/UpdateReplyRequest_data_attributes' + required: + - attributes + - type + type: object CreateReplyRequest_data_attributes: properties: body: type: string + isDrafting: + type: boolean required: - body type: object @@ -16327,12 +17223,12 @@ components: type: object CreatePartRequest_data_relationships: properties: + instances: + $ref: '#/components/schemas/PartInstancesRelationship' source: - anyOf: + oneOf: - $ref: '#/components/schemas/FileRelationship' - - $ref: '#/components/schemas/PartAssemblyRelationship' - required: - - source + - $ref: '#/components/schemas/DeprecatedPartAssemblyRelationship' type: object CreatePartRequest_data: properties: @@ -16918,7 +17814,7 @@ components: suppliedId: description: A customer provided ID used for correlation. example: PN12345 - maxLength: 256 + maxLength: 1024 type: string type: object CreateSceneAnnotationSetRequest_data: @@ -16949,7 +17845,7 @@ components: suppliedId: description: A customer provided ID used for correlation. example: PN12345 - maxLength: 256 + maxLength: 1024 type: string required: - data @@ -17072,6 +17968,15 @@ components: example: exportedScene maxLength: 1024 type: string + downloadUrlExpiry: + description: + Number of seconds before the download url for the export expires + when retrieving a completed export. This expiry takes effect when retrieving + the export and is valid for the specified time here. + example: 600 + maximum: 604800 + minimum: 1 + type: integer required: - config type: object @@ -17311,6 +18216,16 @@ components: - redirectUris - scopes type: object + AttachmentData_attributes: + properties: + content: + description: The underlying content of the attachment + oneOf: + - $ref: '#/components/schemas/FileAttachment' + - $ref: '#/components/schemas/SceneViewStateAttachment' + required: + - content + type: object BatchOperation_ref: description: Target of batch operation. properties: @@ -17376,6 +18291,10 @@ components: example: 2020-01-01T12:00:00Z format: date-time type: string + editedAt: + example: 2020-01-01T12:00:00Z + format: date-time + type: string type: $ref: '#/components/schemas/ThreadType' status: @@ -17384,6 +18303,9 @@ components: type: string body: type: string + isDrafting: + description: Indicates whether or not the thread is in a drafted state + type: boolean replyCount: format: int32 type: integer @@ -17394,6 +18316,7 @@ components: - $ref: '#/components/schemas/SceneReference' required: - createdAt + - isDrafting - modifiedAt - status - type @@ -17463,11 +18386,23 @@ components: additionalProperties: type: string type: object + expiresAt: + example: 2020-01-01T12:00:00Z + format: date-time + type: string required: - created - name - status type: object + UploadUrlData_attributes: + properties: + uploadUrl: + example: https://example.com/path/to/file.zip + type: string + required: + - uploadUrl + type: object DownloadUrlData_attributes: properties: downloadUrl: @@ -17499,6 +18434,10 @@ components: additionalProperties: type: string type: object + expiresAt: + example: 2020-01-01T12:00:00Z + format: date-time + type: string required: - created type: object @@ -17512,11 +18451,19 @@ components: example: 2020-01-01T12:00:00Z format: date-time type: string + editedAt: + example: 2020-01-01T12:00:00Z + format: date-time + type: string body: type: string + isDrafting: + description: Indicates whether or not the thread is in a drafted state + type: boolean required: - body - createdAt + - isDrafting - modifiedAt type: object ReplyData_relationships: @@ -17757,7 +18704,31 @@ components: required: - partRevisions type: object - PartAssemblyRelationship_data: + PartInstancesRelationship_attributes: + properties: + transform: + $ref: '#/components/schemas/Matrix4' + type: object + PartInstancesRelationship_data: + properties: + type: + description: Resource object type. + enum: + - part-revision-instance + type: string + id: + description: ID of the resource. + example: f79d4760-0b71-44e4-ad0b-22743fdd4ca3 + format: uuid + maxLength: 36 + type: string + attributes: + $ref: '#/components/schemas/PartInstancesRelationship_attributes' + required: + - id + - type + type: object + DeprecatedPartAssemblyRelationship_data: properties: children: items: @@ -18329,10 +19300,23 @@ components: downloadUrl: example: https://example.com/path/to/file.jt type: string + downloadUrlExpiry: + description: + Number of seconds before the download url for the export expires + when retrieving a completed export. The url can be recreated by re-fetching + the export. + type: integer required: - created - downloadUrl type: object + ExportData_relationships: + properties: + file: + $ref: '#/components/schemas/FileRelationship' + required: + - file + type: object SearchSessionData_attributes: properties: status: