import { ShapeDiverResponseAnalytics } from './SdResponseDtoAnalytics';
import { ShapeDiverResponseDtoAsset } from './SdResponseDtoAsset';
import {
ShapeDiverResponseExport,
ShapeDiverResponseExportDefinition,
} from './SdResponseDtoExport';
import { ShapeDiverResponseList } from './SdResponseDtoList';
import {
ShapeDiverResponseAction,
ShapeDiverResponseFile,
ShapeDiverResponseGltfUpload,
ShapeDiverResponseModel,
ShapeDiverResponseModelCleanupProcess,
ShapeDiverResponseModelState,
ShapeDiverResponseParameter,
ShapeDiverResponsePlugins,
ShapeDiverResponseStatistic,
ShapeDiverResponseTemplate,
ShapeDiverResponseTicket,
ShapeDiverResponseViewer,
} from './SdResponseDtoMisc';
import { ShapeDiverResponseModelComputation } from './SdResponseDtoModelComputation';
import {
ShapeDiverResponseOutput,
ShapeDiverResponseOutputDefinition,
} from './SdResponseDtoOutput';
import { ShapeDiverResponseSettings } from './SdResponseDtoSetting';
import { ShapeDiverResponseSystem } from './SdResponseDtoSystem';
/**
* Swagger 3.0.3 does not support the removal of properties.
* Since we only want to show used properties of the ResponseDTO in routes, we
* need to specify all properties of the ResponseDTO individually and stuck them
* together inside of the route specifications.
*
* @swagger {components.schemas} ResponseDtoVersion {
"type": "object",
"properties": {
"version": {
"description": "Version of the response format.",
"type": "string"
}
},
"required": [ "version" ]
}
* @swagger {components.schemas} ResponseDtoMessage {
"type": "object",
"properties": {
"message": {
"description": "Contains urgent information about the system.",
"type": "string"
}
}
}
* @swagger {components.schemas} ResponseDtoWarnings {
"type": "object",
"properties": {
"warnings": {
"description": "An array of warnings encountered during request processing. These warnings indicate potential issues or non-critical conditions but did not prevent the request from being successfully processed.",
"type": "array",
"items": {
"type": "string"
}
}
}
}
* @swagger {components.schemas} ResponseDtoTicket {
"type": "object",
"properties": {
"ticket": {
"description": "The ticket to create a model session.",
"type": "string"
}
}
}
* @swagger {components.schemas} ResponseDtoSessionId {
"type": "object",
"properties": {
"sessionId": {
"description": "The ID of the created session.",
"type": "string"
}
}
}
* @swagger {components.schemas} ResponseDtoViewerSettingsVersion {
"type": "object",
"properties": {
"viewerSettingsVersion": {
"description": "The current version of the viewer settings.",
"type": "string"
}
}
}
* @swagger {components.schemas} ResponseDecryptTicket {
"allOf": [
{ "$ref": "#/components/schemas/ResponseTicket" },
{
"description": "Decrypted ticket details.",
"type": "object"
}
]
}
* @swagger {components.schemas} ResponseDtoAuthorizationGroup {
"type": "object",
"properties": {
"auth_group": {
"description": "The auth-group to use for ticked-based authentication.",
"type": "string"
}
}
}
* @swagger {components.schemas} ResponseDtoActions {
"type": "object",
"properties": {
"actions": {
"description": "Actions the client may take.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ResponseAction"
}
}
}
}
* @swagger {components.schemas} ResponseDtoTemplates {
"type": "object",
"properties": {
"templates": {
"description": "Request templates for actions.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ResponseTemplate"
}
}
}
}
* @swagger {components.schemas} ResponseDtoModel {
"type": "object",
"properties": {
"model": {
"description": "The definitions of a ShapeDiver model.",
"$ref": "#/components/schemas/ResponseModel"
}
}
}
* @swagger {components.schemas} ResponseDtoModelState {
"type": "object",
"properties": {
"modelState": {
"description": "The definitions of a ShapeDiver Model-State.",
"$ref": "#/components/schemas/ResponseModelState"
}
}
}
* @swagger {components.schemas} ResponseDtoFile {
"type": "object",
"properties": {
"file": {
"description": "Links regarding the model file.",
"$ref": "#/components/schemas/ResponseFile"
}
}
}
* @swagger {components.schemas} ResponseDtoStatistic {
"type": "object",
"properties": {
"statistic": {
"description": "Statistics of a model.",
"$ref": "#/components/schemas/ResponseStatistic"
}
}
}
* @swagger {components.schemas} ResponseDtoSetting {
"type": "object",
"properties": {
"setting": {
"description": "Various settings.",
"$ref": "#/components/schemas/ResponseSettings"
}
}
}
* @swagger {components.schemas} ResponseDtoParameters {
"type": "object",
"properties": {
"parameters": {
"description": "Parameter definitions, not contained with every response.
A directory of parameter-IDs and parameters.",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ResponseParameter"
}
}
}
}
* @swagger {components.schemas} ResponseDtoPlugins {
"type": "object",
"properties": {
"plugins": {
"description": "Information about Grasshopper plugins.",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ResponsePlugins"
}
}
}
}
* @swagger {components.schemas} ResponseDtoViewer {
"type": "object",
"properties": {
"viewer": {
"description": "Viewer specific data.",
"$ref": "#/components/schemas/ResponseViewer"
}
}
}
* @swagger {components.schemas} ResponseDtoOutputs {
"type": "object",
"properties": {
"outputs": {
"description": "Outputs of the model for the given parameter values.
A directory of output-IDs and outputs.",
"type": "object",
"additionalProperties": {
"oneOf": [
{ "$ref": "#/components/schemas/ResponseOutput" },
{ "$ref": "#/components/schemas/ResponseOutputDefinition" }
]
}
}
}
}
* @swagger {components.schemas} ResponseDtoExports {
"type": "object",
"properties": {
"exports": {
"description": "Exports of the model for the given parameter values.
A directory of export-IDs and exports.",
"type": "object",
"additionalProperties": {
"oneOf": [
{ "$ref": "#/components/schemas/ResponseExport" },
{ "$ref": "#/components/schemas/ResponseExportDefinition" }
]
}
}
}
}
* @swagger {components.schemas} ResponseDtoAsset {
"type": "object",
"properties": {
"asset": {
"description": "File or sdTF assets.",
"$ref": "#/components/schemas/ResponseAsset"
}
}
}
* @swagger {components.schemas} ResponseDtoAnalytics {
"type": "object",
"properties": {
"analytics": {
"description": "Statistics of the model for the given timespan.",
"$ref": "#/components/schemas/ResponseAnalytics"
}
}
}
* @swagger {components.schemas} ResponseDtoList {
"type": "object",
"properties": {
"list": {
"description": "Response of a list API call.",
"$ref": "#/components/schemas/ResponseList"
}
}
}
* @swagger {components.schemas} ResponseDtoGltfUpload {
"type": "object",
"properties": {
"gltf": {
"description": "glTF information.",
"$ref": "#/components/schemas/ResponseGltfUpload"
}
}
}
* @swagger {components.schemas} ResponseDtoModelComputation {
"type": "object",
"properties": {
"computations": {
"description": "Statistics about model computations.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ResponseModelComputation"
}
}
}
}
* @swagger {components.schemas} ResponseDtoPagination {
"type": "object",
"properties": {
"pagination": {
"description": "Pagination information.",
"$ref": "#/components/schemas/ResponsePagination"
}
}
}
* @swagger {components.schemas} ResponseDtoSystem {
"type": "object",
"properties": {
"system": {
"description": "System information.",
"$ref": "#/components/schemas/ResponseSystem"
}
}
}
* @swagger {components.schemas} ResponseDtoCleanup {
"type": "object",
"properties": {
"cleanup": {
"description": "Model cleanup information.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ResponseModelCleanupProcess"
}
}
}
}
*/
/** Structure of a Geometry Backend response. */
export interface ShapeDiverResponseDto {
/** Version of the response format. */
version: string;
/** Contains urgent information about the system. */
message?: string;
/**
* An array of warnings encountered during request processing. These warnings indicate
* potential issues or non-critical conditions but did not prevent the request from being
* successfully processed.
*/
warnings?: string[];
/** The ticket to create a model session. */
ticket?: string;
/** The ID of the created session. */
sessionId?: string;
/** Decrypted ticket details. */
decryptedTicket?: ShapeDiverResponseTicket;
/** The auth-group to use for ticked-based authentication. */
auth_group?: string;
/** Actions the client may take. */
actions?: ShapeDiverResponseAction[];
/** Request templates for actions. */
templates?: ShapeDiverResponseTemplate[];
/** The definitions of a ShapeDiver model. */
model?: ShapeDiverResponseModel;
/** The definitions of a ShapeDiver Model-State. */
modelState?: ShapeDiverResponseModelState;
/** Links regarding the model file. */
file?: ShapeDiverResponseFile;
/** Statistics of a model. */
statistic?: ShapeDiverResponseStatistic;
/** Various settings. */
setting?: ShapeDiverResponseSettings;
/** Parameter definitions, not contained with every response.
A directory of parameter-IDs and parameters. */
parameters?: { [id: string]: ShapeDiverResponseParameter };
/** Information about Grasshopper plugins. */
plugins?: ShapeDiverResponsePlugins;
/** Viewer specific data. */
viewer?: ShapeDiverResponseViewer;
/** The current version of the viewer settings. */
viewerSettingsVersion?: string;
/** Outputs of the model for the given parameter values.
A directory of output-IDs and outputs. */
outputs?: { [id: string]: ShapeDiverResponseOutput | ShapeDiverResponseOutputDefinition };
/** Exports of the model for the given parameter values.
A directory of export-IDs and exports. */
exports?: { [id: string]: ShapeDiverResponseExport | ShapeDiverResponseExportDefinition };
/** File or sdTF assets. */
asset?: ShapeDiverResponseDtoAsset;
/** Statistics of the model for the given timespan. */
analytics?: ShapeDiverResponseAnalytics;
/** Response of a list API call. */
list?: ShapeDiverResponseList;
/** glTF information. */
gltf?: ShapeDiverResponseGltfUpload;
/** Statistics about model computations. */
computations?: ShapeDiverResponseModelComputation[];
/** Pagination information. */
pagination?: ShapeDiverResponsePagination;
/** System information. */
system?: ShapeDiverResponseSystem;
/** Model cleanup information. */
cleanup?: ShapeDiverResponseModelCleanupProcess[];
}
/**
* @swagger {components.schemas} ResponsePagination {
"description": "Pagination component.",
"type": "object"
}
*/
export interface ShapeDiverResponsePagination {
/**
* @swagger {components.schemas.ResponsePagination.properties} limit {
"description": "The query limit that has been used in the request.",
"type": "number"
}
* @swagger {components.schemas.ResponsePagination} required [ "limit" ]
*/
limit: number;
/**
* @swagger {components.schemas.ResponsePagination.properties} next_offset {
"description": "The offset that can be used in the next request to query the remaining items. This property is missing when all items have been processed.",
"type": "string"
}
*/
next_offset?: string;
}