Siemens PLM · Schema

TcPCM Gateway API Schemas

JSON Schema definitions for Teamcenter Product Cost Management Gateway API

PLMProduct Lifecycle ManagementTeamcenterNXSolid EdgeSimcenterXceleratorDigital ManufacturingIndustrial IoTCADCAMSustainabilityALM
View JSON Schema on GitHub

JSON Schema

teamcenter-product-cost-management.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://developer.siemens.com/tcpcm/schemas/tcpcm-gateway-api.json",
  "title": "TcPCM Gateway API Schemas",
  "description": "JSON Schema definitions for Teamcenter Product Cost Management Gateway API",
  "definitions": {
    "Currency": {
      "type": "string",
      "description": "Currency in ISO format",
      "pattern": "^[A-Z]{3}$",
      "example": "EUR"
    },
    "MeasurementUnit": {
      "type": "string",
      "description": "Measurement unit"
    },
    "PaginationLinks": {
      "type": "object",
      "properties": {
        "self": {
          "type": "string",
          "description": "Link to this collection"
        },
        "next": {
          "type": "string",
          "description": "Link to the next page or null if there is none"
        },
        "prev": {
          "type": "string",
          "description": "Link to the previous page or null if there is none"
        },
        "first": {
          "type": "string",
          "description": "Link to the first page"
        },
        "last": {
          "type": "string",
          "description": "Link to the last page"
        }
      },
      "required": [
        "self",
        "next",
        "prev",
        "first",
        "last"
      ]
    },
    "PaginationMeta": {
      "type": "object",
      "properties": {
        "number": {
          "type": "integer",
          "description": "Current page number"
        },
        "totalPages": {
          "type": "integer",
          "description": "Total number of pages"
        },
        "size": {
          "type": "integer",
          "description": "Number of elements per page"
        }
      },
      "required": [
        "number",
        "size",
        "totalPages"
      ]
    },
    "SelfLink": {
      "type": "object",
      "properties": {
        "self": {
          "type": "string",
          "description": "Link to the current resource"
        }
      },
      "required": [
        "self"
      ]
    },
    "IntArray": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "Date": {
      "type": "string",
      "description": "Date",
      "format": "date"
    },
    "IdArray": {
      "title": "IdArray",
      "type": "array",
      "description": "Array with object ids",
      "uniqueItems": true,
      "maxItems": 100000,
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 2147483647
      },
      "example": [
        1,
        5,
        11,
        3,
        2423,
        3039,
        4521
      ]
    },
    "Guid": {
      "title": "GUID",
      "type": "string",
      "format": "uuid",
      "maxLength": 36,
      "description": "Global unique identifier",
      "example": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    },
    "DataType": {
      "type": "string",
      "enum": [
        "double",
        "integer",
        "date",
        "string",
        "object",
        "reference",
        "bool",
        "url"
      ],
      "example": "double"
    },
    "Column": {
      "title": "Column",
      "type": "object",
      "required": [
        "dataType"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 0,
          "description": "Name of the data field"
        },
        "displayName": {
          "type": "string",
          "maxLength": 255,
          "minLength": 0,
          "description": "Displayname of the column"
        },
        "dataType": {
          "$ref": "#/components/schemas/DataType"
        }
      }
    },
    "DataSet": {
      "title": "DataSet",
      "type": "object",
      "description": "Represents a two-dimensional data set with column descriptions including column data types.",
      "required": [
        "data",
        "columns"
      ],
      "properties": {
        "data": {
          "type": "array",
          "description": "Array of objects defining a two-dimensional array via the property names of the objects. See the 'columns' field for the display names and data types.",
          "maxItems": 100000,
          "items": {
            "type": "object"
          }
        },
        "columns": {
          "type": "array",
          "description": "Columns of the dataset describing the names and the datatypes",
          "maxItems": 100000,
          "items": {
            "$ref": "#/components/schemas/Column"
          }
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "properties": {
        "Errors": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Error"
          },
          "readOnly": true
        }
      }
    },
    "Error": {
      "type": "object",
      "properties": {
        "detail": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ErrorLegacy": {
      "type": "object",
      "properties": {
        "Detail": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ExportCalculationsRequestModel": {
      "type": "object",
      "properties": {
        "ProjectIds": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "description": "List of requested project ids. All calculation of the projects get exported"
        },
        "CalculationIds": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer",
            "example": 2056
          },
          "description": "List of requested calculation ids"
        },
        "ConfigurationGuid": {
          "type": "string",
          "example": "b14473ea-a58c-4d73-afa8-ba7c65613a0e",
          "description": "Guid of the export configuration"
        },
        "Year": {
          "type": "integer",
          "description": "Year of the project assumptions which are used for the calculation  export in case of lifetime projects (4 digit year). Available since version 2512."
        }
      }
    },
    "ExportMasterDataRequestModel": {
      "type": "object",
      "properties": {
        "Ids": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "example": [
            52,
            60
          ],
          "description": "Database instance specific identifiers"
        },
        "Guids": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Guid"
          },
          "description": "Database instance independent identifiers"
        },
        "ConfigurationGuid": {
          "type": "string",
          "example": "e1548f26-af8d-4173-9881-7ce1de530911",
          "description": "Export configuration Guid"
        }
      }
    },
    "ExportToolCalculationCdbRequest": {
      "required": [
        "ToolCalculationId",
        "CostBreakDownConfigurationUniqueKey"
      ],
      "type": "object",
      "properties": {
        "ToolCalculationId": {
          "format": "int32",
          "type": "integer",
          "example": 1015
        },
        "CostBreakDownConfigurationUniqueKey": {
          "type": "string",
          "example": "Siemens.TCPCM.CostBreakdownForTools.StandardCBDforinjecttools.WebApi"
        }
      }
    },
    "ExportToolCalculationCbdResponse": {
      "type": "object",
      "properties": {
        "toolCalculationId": {
          "format": "int32",
          "type": "integer",
          "readOnly": true
        },
        "costBreakDownConfigurationUniqueKey": {
          "type": "string",
          "readOnly": true
        },
        "toolProperties": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ExportToolCalculationCbdToolProperty"
          },
          "readOnly": true
        },
        "materials": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ExportToolCalculationCbdMaterial"
          },
          "readOnly": true
        }
      }
    },
    "ExportToolCalculationCbdToolProperty": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "readOnly": true
        },
        "value": {
          "type": "string",
          "readOnly": true
        },
        "unit": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ExportToolCalculationCbdMaterial": {
      "type": "object",
      "properties": {
        "properties": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ExportToolCalculationCbdMaterialProperty"
          },
          "readOnly": true
        }
      }
    },
    "ExportToolCalculationCbdMaterialProperty": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "readOnly": true
        },
        "value": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "UserResponseModel": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "readOnly": true
        },
        "attributes": {
          "$ref": "#/components/schemas/UserResponseModelAttributes"
        }
      }
    },
    "UserResponseModelAttributes": {
      "type": "object",
      "properties": {
        "userName": {
          "type": "string",
          "readOnly": true
        },
        "emailAddress": {
          "type": "string",
          "readOnly": true
        },
        "firstName": {
          "type": "string",
          "readOnly": true
        },
        "lastName": {
          "type": "string",
          "readOnly": true
        },
        "active": {
          "type": "boolean",
          "readOnly": true
        },
        "roleAssignments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RoleAssignmentResponseModel"
          },
          "readOnly": true
        }
      }
    },
    "RoleAssignmentResponseModel": {
      "type": "object",
      "properties": {
        "client": {
          "type": "string",
          "readOnly": true
        },
        "role": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "ToggleActivationRequestModel": {
      "required": [
        "active"
      ],
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": false
        }
      }
    },
    "ImportCalculationsRequestModel": {
      "type": "object",
      "properties": {
        "Data": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Dataset to be imported.",
          "example": [
            {
              "Assembly hierarchy level": 0,
              "Quantity": 4,
              "Quantity unit": "Pcs",
              "Item number": "PNR 24253"
            },
            {
              "Assembly hierarchy level": 1,
              "Quantity": 7,
              "Quantity unit": "Pcs",
              "Item number": "PNR 53221"
            }
          ]
        },
        "PlantUniqueKey": {
          "type": "string",
          "description": "Plant key. Client of the given plant is used."
        },
        "ConfigurationGuid": {
          "type": "string",
          "description": "GUID of the import configuration.",
          "format": "uuid",
          "example": "4c43cab9-d9fa-4154-9c41-968654ac05b2"
        },
        "ExportConfigurationGuid": {
          "type": "string",
          "description": "GUID of the export configuration. If this is set then the imported data is returned using the given export configuration. Available with version 2412.",
          "format": "uuid",
          "example": "b14473ea-a58c-4d73-afa8-ba7c65613a0e"
        },
        "TargetType": {
          "type": "string",
          "example": "folder"
        },
        "TargetId": {
          "format": "int32",
          "type": "integer",
          "example": 534
        }
      },
      "required": [
        "Data",
        "ConfigurationGuid"
      ]
    },
    "TcPCMResponseModel": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "ImportMasterDataRequestModel": {
      "type": "object",
      "properties": {
        "Data": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "example": [
            {
              "Designation": "Carbon",
              "Unique identifier": "Custom.Unique.Carbon",
              "Type": "Cost value"
            },
            {
              "Designation": "Reinvestment rate",
              "Unique identifier": "Custom.Unique.Reinvestment",
              "Type": "Unit"
            }
          ]
        },
        "PlantUniqueKey": {
          "type": "string",
          "example": "TcPCM-001"
        },
        "ConfigurationGuid": {
          "type": "string",
          "example": "9231ad11-744e-481a-b9ec-bce80979ccbd"
        }
      }
    },
    "TcPCMWebApiResponseModel_of_DataTable": {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "success": {
          "type": "boolean"
        },
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "TcPCMWebApiResponseModel_of_ExportToolCalculationCbdResponse": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/ExportToolCalculationCbdResponse"
        },
        "success": {
          "type": "boolean"
        },
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "Response_of_UserResponseModel": {
      "type": "object",
      "properties": {
        "data": {
          "$ref": "#/components/schemas/UserResponseModel"
        }
      }
    },
    "ProfitabilityCalculationReportError": {
      "title": "ProfitabilityCalculationReportError",
      "type": "object",
      "description": "Partial error of a profitability calculation report request.",
      "required": [
        "status",
        "detail"
      ],
      "properties": {
        "status": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Http status code",
          "readOnly": true
        },
        "detail": {
          "type": "string",
          "description": "Detail description of the error"
        },
        "profitabilityCalculationId": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Id of the requested profitability calculation",
          "readOnly": true
        },
        "projectId": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Id of the requested project",
          "readOnly": true
        }
      }
    },
    "AggregatedProfitabilityCalculationReportError": {
      "title": "ProfitabilityCalculationReportError",
      "type": "object",
      "description": "Partial error of an aggregated profitability calculation report request.",
      "required": [
        "status",
        "detail"
      ],
      "properties": {
        "status": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Http status code",
          "readOnly": true
        },
        "detail": {
          "type": "string",
          "description": "Detail description of the error"
        },
        "aggregatedProfitabilityCalculationId": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Id of the requested aggregated profitability calculation",
          "readOnly": true
        },
        "folderId": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Id of the requested folder",
          "readOnly": true
        }
      }
    },
    "ProjectModel": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Id of the project"
        },
        "name": {
          "type": "string",
          "description": "Name of the project"
        },
        "startOfProductionDate": {
          "$ref": "#/components/schemas/Date",
          "description": "Start of production date"
        },
        "endOfProductionDate": {
          "$ref": "#/components/schemas/Date",
          "description": "End of production date"
        },
        "yearsBeforeSOP": {
          "type": "integer",
          "description": "Number of years before start of production date"
        },
        "yearsAfterSOP": {
          "type": "integer",
          "description": "Number of years after start of production date"
        },
        "lifetimeYears": {
          "$ref": "#/components/schemas/IntArray",
          "description": "List of years (4 digits) of the lifetime of the project"
        },
        "links": {
          "$ref": "#/components/schemas/SelfLink",
          "description": "Link to the current project"
        }
      },
      "required": [
        "id",
        "name",
        "lifetimeYears",
        "startOfProductionDate",
        "endOfProductionDate",
        "yearsBeforeSOP",
        "yearsAfterSOP",
        "links"
      ],
      "description": "Project"
    },
    "ProjectAssumptionModel": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Id of the project assumption"
        },
        "materialHeaders": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the material"
              },
              "itemNumber": {
                "type": "string",
                "description": "Item number of the material"
              },
              "revisionNumber": {
                "type": "string",
                "description": "Number of the material revision"
              },
              "classification": {
                "type": "string",
                "description": "Name of the classification"
              },
              "listProperty1": {
                "type": "string",
                "description": "Name of the list property 1"
              },
              "listProperty2": {
                "type": "string",
                "description": "Name of the list property 2"
              },
              "listProperty3": {
                "type": "string",
                "description": "Name of the list property 3"
              },
              "validityParameters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "currency": {
                      "$ref": "#/components/schemas/Currency",
                      "description": "Currency of the material prices"
                    },
                    "unit": {
                      "$ref": "#/components/schemas/MeasurementUnit",
                      "description": "Unit of the material prices"
                    },
                    "mode": {
                      "type": "string",
                      "enum": [
                        "MasterData",
                        "Manual"
                      ],
                      "description": "Mode whether the material is linked with master data or entered manually"
                    },
                    "supplier": {
                      "type": "string",
                      "description": "Supplier validity of the material prices"
                    },
                    "customer": {
                      "type": "string",
                      "description": "Customer validity of the material prices"
                    },
                    "region": {
                      "type": "string",
                      "description": "Region validity of the material prices"
                    },
                    "plant": {
                      "type": "string",
                      "description": "Plant validity of the material prices"
                    },
                    "procurementType": {
                      "type": "string",
                      "description": "Procurement type validity of the material prices"
                    },
                    "materialPriceTag": {
                      "type": "string",
                      "description": "Tag of the material price"
                    },
                    "listProperty1Value": {
                      "type": "string",
                      "description": "Value of the list property 1"
                    },
                    "listProperty2Value": {
                      "type": "string",
                      "description": "Value of the list property 2"
                    },
                    "listProperty3Value": {
                      "type": "string",
                      "description": "Value of the list property 3"
                    },
                    "selectedValidFrom": {
                      "$ref": "#/components/schemas/Date",
                      "description": "Date of the fallback master data lookup match"
                    },
                    "materialPrices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "materialDetailGuid": {
                            "$ref": "#/components/schemas/Guid",
                            "description": "Database instance independent material detail identifier"
                          },
                          "year": {
                            "type": "integer",
                            "description": "Year of the material price (4 digit year)",
                            "minimum": 1900,
                            "maximum": 9999
                          },
                          "masterDataPrice": {
                            "type": "number",
                            "description": "Material price from master data",
                            "format": "double"
                          },
                          "manualPrice": {
                            "type": "number",
                            "format": "double",
                            "description": "Manual price"
                          },
                          "increaseRate": {
                            "type": "number",
                            "format": "double",
                            "description": "Increase rate applied for that period"
                          },
                          "forecastedPrice": {
                            "type": "number",
                            "format": "double",
                            "description": "Forecasted material price"
                          },
                          "priceLayering": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "calculationElement": {
                                  "type": "string",
                                  "description": "Calculation element of the price layering"
                                },
                                "masterDataValue": {
                                  "type": "number",
                                  "format": "double",
                                  "description": "Master data value of the price layering"
                                },
                                "manualValue": {
                                  "type": "number",
                                  "format": "double",
                                  "description": "Manual value of the price layering"
                                },
                                "forecastedValue": {
                                  "type": "number",
                                  "format": "double",
                                  "description": "Forecasted value of the price layering"
                                }
                              },
                              "required": [
                                "calculationElement",
                                "masterDataValue",
                                "manualValue",
                                "forecastedValue"
                              ]
                            },
                            "description": "Price layering of the material price"
                          }
                        },
                        "required": [
                          "masterDataPrice",
                          "year",
                          "manualPrice",
                          "increaseRate",
                          "forecastedPrice",
                          "priceLayering"
                        ]
                      },
                      "description": "Material prices per period"
                    }
                  },
                  "required": [
                    "currency",
                    "unit",
                    "mode",
                    "procurementType",
                    "materialPrices"
                  ]
                },
                "description": "List of validity parameters"
              }
            },
            "required": [
              "itemNumber",
              "revisionNumber",
              "name",
              "validityParameters"
            ]
          }
        }
      },
      "required": [
        "id"
      ]
    }
  }
}