openapi: 3.0.0
info:
  version: v1.0
  title: TcPCM Gateway API
  description: TcPCM Gateway API
  license:
    name: Privacy Policy
    url: https://www.plm.automation.siemens.com/global/en/legal/privacy-policy.html
paths:
  "/api/v1/administration/samAuth/users/{userName}":
    put:
      tags:
        - "Administration: Users"
      summary: Create or Update Sam Auth User
      operationId: CreateSamAuthUser_CreateOrUpdateSamAuthUser
      parameters:
        - name: userName
          in: path
          description: User name
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateSamAuthUserRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateSamAuthUserRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/CreateSamAuthUserRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/CreateSamAuthUserRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/CreateSamAuthUserRequestModel"
        description: The request represents that the user with {userName} will either be
          created or updated depending on whether the {userName} exists or not.
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Response_of_CreateSamAuthUserResponseModel"
            text/json:
              schema:
                $ref: "#/components/schemas/Response_of_CreateSamAuthUserResponseModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/Response_of_CreateSamAuthUserResponseModel"
            text/xml:
              schema:
                $ref: "#/components/schemas/Response_of_CreateSamAuthUserResponseModel"
        "400":
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            text/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            text/xml:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Unauthorized
        "500":
          description: InternalServerError
      deprecated: false
  "/api/v1/administration/users/{userName}":
    get:
      tags:
        - "Administration: Users"
      summary: Fetch a user User by {userName}. Only allowed for admins.
      operationId: GetUser_GetUser
      parameters:
        - name: userName
          in: path
          description: User name
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Response_of_UserResponseModel"
            text/json:
              schema:
                $ref: "#/components/schemas/Response_of_UserResponseModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/Response_of_UserResponseModel"
            text/xml:
              schema:
                $ref: "#/components/schemas/Response_of_UserResponseModel"
        "401":
          description: Unauthorized
        "404":
          description: NotFound
      deprecated: false
    patch:
      tags:
        - "Administration: Users"
      summary: Either activated or deactivate Sam Auth User
      operationId: ToggleUserActivation_ToggleActivation
      parameters:
        - name: userName
          in: path
          description: User name
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ToggleActivationRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/ToggleActivationRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/ToggleActivationRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/ToggleActivationRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ToggleActivationRequestModel"
        description: The request represents that {userName} will be either activated or
          deactivated.
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
        "204":
          description: NoContent
        "400":
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            text/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
            text/xml:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Unauthorized
        "404":
          description: NotFound
        "500":
          description: InternalServerError
      deprecated: false
  /api/v1/Calculations/Export:
    post:
      tags:
        - "Import/Export: Calculations"
      operationId: ExportCalculations_ExportCalculationsToResponseModel
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportCalculationsRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/ExportCalculationsRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/ExportCalculationsRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/ExportCalculationsRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ExportCalculationsRequestModel"
        required: true
      responses:
        "200":
          description: Returns export data of given calculation IDs using given export
            configuration.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
        "401":
          description: Indicates that the requested resource requires authentication.
        "405":
          description: Indicates that the request method (POST or GET) is not allowed on
            the requested resource.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/ToolCalculations/CostBreakDown/Export:
    post:
      tags:
        - "Import/Export: Calculations"
      operationId: ExportToolCalculationCbd_ExportCostBreakDown
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportToolCalculationCdbRequest"
          text/json:
            schema:
              $ref: "#/components/schemas/ExportToolCalculationCdbRequest"
          application/xml:
            schema:
              $ref: "#/components/schemas/ExportToolCalculationCdbRequest"
          text/xml:
            schema:
              $ref: "#/components/schemas/ExportToolCalculationCdbRequest"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ExportToolCalculationCdbRequest"
        required: true
      responses:
        "200":
          description: Returns cost break down data of given tool calculation ID and
            export configuration unique key.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_ExportToolCalculationCbdResponse"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_ExportToolCalculationCbdResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_ExportToolCalculationCbdResponse"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_ExportToolCalculationCbdResponse"
        "401":
          description: Indicates that the requested resource requires authentication.
        "405":
          description: Indicates that the request method (POST or GET) is not allowed on
            the requested resource.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/Calculations/Import:
    post:
      tags:
        - "Import/Export: Calculations"
      operationId: ImportCalculations_ImportCalculationsFromRequestModel
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ImportCalculationsRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/ImportCalculationsRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/ImportCalculationsRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/ImportCalculationsRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ImportCalculationsRequestModel"
        required: true
      responses:
        "200":
          description: Imports calculations using a given import configuration.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/Export:
    post:
      tags:
        - "Import/Export: MasterData"
      operationId: ExportMasterData_ExportMasterDataToResponseModel
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportMasterDataRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/ExportMasterDataRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/ExportMasterDataRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/ExportMasterDataRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ExportMasterDataRequestModel"
        required: true
      responses:
        "200":
          description: Returns export data of given master data IDs using given export
            configuration.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_DataTable"
        "401":
          description: Indicates that the requested resource requires authentication.
        "405":
          description: Indicates that the request method (POST or GET) is not allowed on
            the requested resource.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/Import:
    post:
      tags:
        - "Import/Export: MasterData"
      operationId: ImportMasterData_ImportMasterDataFromRequestModel
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ImportMasterDataRequestModel"
          text/json:
            schema:
              $ref: "#/components/schemas/ImportMasterDataRequestModel"
          application/xml:
            schema:
              $ref: "#/components/schemas/ImportMasterDataRequestModel"
          text/xml:
            schema:
              $ref: "#/components/schemas/ImportMasterDataRequestModel"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/ImportMasterDataRequestModel"
        required: true
      responses:
        "200":
          description: Imports master data using a given import configuration.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMResponseModel"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/masterData/ping:
    get:
      tags:
        - "Master Data: Basic"
      operationId: MasterData_Ping
      responses:
        "200":
          description: Ok.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/CostFactor/LifeTimeLookup:
    post:
      tags:
        - "Master Data: Cost factors"
      operationId: CostFactor_LifeTimeLookup
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LifetimeCostFactorRequestContainer"
          text/json:
            schema:
              $ref: "#/components/schemas/LifetimeCostFactorRequestContainer"
          application/xml:
            schema:
              $ref: "#/components/schemas/LifetimeCostFactorRequestContainer"
          text/xml:
            schema:
              $ref: "#/components/schemas/LifetimeCostFactorRequestContainer"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/LifetimeCostFactorRequestContainer"
        required: true
      responses:
        "200":
          description: Returns look up results for the periods in the given lifetime.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeCostFactorResult"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeCostFactorResult"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeCostFactorResult"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeCostFactorResult"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/ExchangeRates/LifeTimeLookup:
    post:
      tags:
        - "Master Data: Exchange rates"
      operationId: ExchangeRateMasterData_LifeTimeLookupByUniqueNames
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LifetimeExchangeRateByNameRequestContainer"
          text/json:
            schema:
              $ref: "#/components/schemas/LifetimeExchangeRateByNameRequestContainer"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/LifetimeExchangeRateByNameRequestContainer"
        required: true
      responses:
        "200":
          description: Returns look up results for the periods in the given lifetime.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifeTimeLookupExchangeRateByNameResult"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifeTimeLookupExchangeRateByNameResult"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifeTimeLookupExchangeRateByNameResult"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifeTimeLookupExchangeRateByNameResult"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/IncreaseRate/LifeTimeLookup:
    post:
      tags:
        - "Master Data: Increase rate"
      operationId: IncreaseRate_LifeTimeLookup
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LifetimeIncreaseRateRequestContainer"
          text/json:
            schema:
              $ref: "#/components/schemas/LifetimeIncreaseRateRequestContainer"
          application/xml:
            schema:
              $ref: "#/components/schemas/LifetimeIncreaseRateRequestContainer"
          text/xml:
            schema:
              $ref: "#/components/schemas/LifetimeIncreaseRateRequestContainer"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/LifetimeIncreaseRateRequestContainer"
        required: true
      responses:
        "200":
          description: Returns look up results for the periods in the given lifetime.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeIncreaseRateResult"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeIncreaseRateResult"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeIncreaseRateResult"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeIncreaseRateResult"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/Material/LifeTimeLookup:
    post:
      tags:
        - "Master Data: Material"
      operationId: MaterialPrice_LifeTimeLookup
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LifetimeMaterialRequestContainer"
          text/json:
            schema:
              $ref: "#/components/schemas/LifetimeMaterialRequestContainer"
          application/xml:
            schema:
              $ref: "#/components/schemas/LifetimeMaterialRequestContainer"
          text/xml:
            schema:
              $ref: "#/components/schemas/LifetimeMaterialRequestContainer"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/LifetimeMaterialRequestContainer"
        required: true
      responses:
        "200":
          description: Returns look up results for the periods in the given lifetime.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeMaterialPriceResponse"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeMaterialPriceResponse"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeMaterialPriceResponse"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeMaterialPriceResponse"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/MasterData/Overhead/LifeTimeLookup:
    post:
      tags:
        - "Master Data: Overhead"
      operationId: Overhead_LifeTimeLookup
      parameters:
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LifetimeOverheadRequestContainer"
          text/json:
            schema:
              $ref: "#/components/schemas/LifetimeOverheadRequestContainer"
          application/xml:
            schema:
              $ref: "#/components/schemas/LifetimeOverheadRequestContainer"
          text/xml:
            schema:
              $ref: "#/components/schemas/LifetimeOverheadRequestContainer"
          application/x-www-form-urlencoded:
            schema:
              $ref: "#/components/schemas/LifetimeOverheadRequestContainer"
        required: true
      responses:
        "200":
          description: Returns look up results for the periods in the given lifetime.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeOverheadResult"
            text/json:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeOverheadResult"
            application/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeOverheadResult"
            text/xml:
              schema:
                $ref: "#/components/schemas/TcPCMWebApiResponseModel_of_List_of_LifetimeOverheadResult"
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/Account/Logout:
    get:
      tags:
        - "WebApi: Account"
      summary: Logout
      operationId: Account_Logout
      parameters:
        - name: refreshTokenId
          in: query
          description: Refresh Token Id
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: bearer token
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successfully logged out.
        "401":
          description: Indicates that the requested resource requires authentication.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /api/v1/Account/DeleteRefreshToken:
    get:
      tags:
        - "WebApi: Account"
      summary: Delete RefreshToken
      operationId: Account_DeleteRefreshToken
      parameters:
        - name: refreshTokenId
          in: query
          description: Refresh Token Id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: RefreshToken successfully removed.
        "500":
          description: Indicates that a generic error has occurred on the server.
      deprecated: false
  /token:
    post:
      tags:
        - "WebApi: Account"
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  default: password
                authenticatorId:
                  type: string
                  default: TcPCM
                client_id:
                  type: string
                  default: TcPCM
                client_secret:
                  type: string
                  default: Your_Client_Secret
                username:
                  type: string
                  default: Administrator
                password:
                  type: string
                  default: ""
              required:
                - grant_type
                - authenticatorId
                - client_id
                - client_secret
                - username
        required: true
      responses:
        default:
          description: Default response
components:
  schemas:
    LifetimeCostFactorRequestContainer:
      type: object
      properties:
        Lifetime:
          $ref: "#/components/schemas/Lifetime"
        LifetimeCostFactorRequest:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeCostFactorRequest"
    Lifetime:
      type: object
      properties:
        StartMonth:
          format: int32
          type: integer
        StartYear:
          format: int32
          type: integer
        NumberOfPeriods:
          format: int32
          type: integer
        MonthPerPeriod:
          format: int32
          type: integer
        MonthPeriodOffset:
          format: int32
          type: integer
    LifetimeCostFactorRequest:
      type: object
      properties:
        CostFactorUniqueIdentifier:
          type: string
        Effectivity:
          $ref: "#/components/schemas/CostFactorEffectivity"
    CostFactorEffectivity:
      type: object
      properties:
        CustomerUniqueIdentifier:
          type: string
        SupplierUniqueIdentifier:
          type: string
        SegmentUniqueIdentifier:
          type: string
        PlantUniqueIdentifier:
          type: string
        RegionUniqueIdentifier:
          type: string
        StateUniqueIdentifier:
          type: string
        CostFactorTagUniqueIdentifier:
          type: string
        SubstanceUniqueIdentifier:
          type: string
        ClassificationProperty1UniqueIdentifier:
          type: string
        ClassificationProperty1ListItemUniqueIdentifier:
          type: string
        ClassificationProperty2UniqueIdentifier:
          type: string
        ClassificationProperty2ListItemUniqueIdentifier:
          type: string
    LifetimeCostFactorResult:
      type: object
      properties:
        LifetimeCostFactorRequest:
          $ref: "#/components/schemas/LifetimeCostFactorRequest"
        LifetimeCostFactorResponse:
          $ref: "#/components/schemas/LifetimeCostFactorResponse"
    LifetimeCostFactorResponse:
      type: object
      properties:
        CostFactorUniqueIdentifier:
          type: string
        CostFactorHeaderTypeUniqueIdentifier:
          type: string
        ActualEffectivity:
          $ref: "#/components/schemas/CostFactorEffectivity"
        LookupQuality:
          type: string
        Message:
          type: string
        CostFactorPeriodResults:
          type: array
          items:
            $ref: "#/components/schemas/CostFactorPeriodResult"
    CostFactorPeriodResult:
      type: object
      properties:
        Period:
          $ref: "#/components/schemas/Period"
        CostFactorValue:
          format: double
          type: number
        CurrencyIsoCode:
          type: string
        DenominatorUnitKeyUniqueIdentifier:
          type: string
        NumeratorUnitKeyUniqueIdentifier:
          type: string
    Period:
      type: object
      properties:
        Index:
          format: int32
          type: integer
          readOnly: true
        StartDate:
          format: date-time
          type: string
          readOnly: true
        EndDate:
          format: date-time
          type: string
          readOnly: true
    CreateSamAuthUserRequestModel:
      required:
        - EMailAddress
        - RoleAssignmentsModel
      type: object
      properties:
        EMailAddress:
          type: string
        FirstName:
          type: string
        LastName:
          type: string
        RoleAssignmentsModel:
          $ref: "#/components/schemas/RoleAssignmentsModel"
    RoleAssignmentsModel:
      required:
        - RolesAssignmentsForUserClient
        - RoleAssignmentsForOtherClients
      type: object
      properties:
        RolesAssignmentsForUserClient:
          type: array
          items:
            type: string
        RoleAssignmentsForOtherClients:
          type: array
          items:
            $ref: "#/components/schemas/RoleAssignmentModel"
    RoleAssignmentModel:
      required:
        - Role
        - Client
      type: object
      properties:
        Role:
          type: string
        Client:
          type: string
    CreateSamAuthUserResponseModel:
      type: object
      properties:
        Type:
          type: string
          readOnly: true
        Attributes:
          $ref: "#/components/schemas/SamAuthResponseAttributes"
    SamAuthResponseAttributes:
      type: object
      properties:
        UserName:
          type: string
          readOnly: true
    ErrorResponse:
      type: object
      properties:
        Errors:
          type: array
          items:
            $ref: "#/components/schemas/Error"
          readOnly: true
    Error:
      type: object
      properties:
        Detail:
          type: string
          readOnly: true
    LifetimeExchangeRateByNameRequestContainer:
      type: object
      properties:
        Lifetime:
          $ref: "#/components/schemas/Lifetime"
        LifetimeExchangeRateRequest:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeExchangeRateByNameRequest"
          readOnly: true
    LifetimeExchangeRateByNameRequest:
      type: object
      properties:
        BaseCurrencyIsoCode:
          type: string
        TargetCurrencyIsoCode:
          type: string
        Effectivity:
          $ref: "#/components/schemas/LifetimeExchangeRateByNameEffectivity"
    LifetimeExchangeRateByNameEffectivity:
      type: object
      properties:
        CustomerUniqueIdentifier:
          type: string
        SupplierUniqueIdentifier:
          type: string
        ClassificationProperty1ListItemUniqueIdentifier:
          type: string
        ClassificationProperty2ListItemUniqueIdentifier:
          type: string
        StateUniqueIdentifier:
          type: string
        TagUniqueIdentifier:
          type: string
        ClassificationProperty1UniqueIdentifier:
          type: string
        ClassificationProperty2UniqueIdentifier:
          type: string
    LifeTimeLookupExchangeRateByNameResult:
      type: object
      properties:
        Request:
          $ref: "#/components/schemas/LifetimeExchangeRateByNameRequest"
        LifeTimeExchangeRates:
          $ref: "#/components/schemas/LifeTimeExchangeRateByName"
        Message:
          type: string
          readOnly: true
    LifeTimeExchangeRateByName:
      type: object
      properties:
        BaseCurrencyIsoCode:
          type: string
        TargetCurrencyIsoCode:
          type: string
        Effectivity:
          $ref: "#/components/schemas/LifetimeExchangeRateByNameEffectivity"
        ExchangeRates:
          type: array
          items:
            $ref: "#/components/schemas/RateOfPeriod"
        LookupQuality:
          type: string
          readOnly: true
    RateOfPeriod:
      type: object
      properties:
        Period:
          $ref: "#/components/schemas/Period"
        ExchangeRate:
          format: double
          type: number
    ExportCalculationsRequestModel:
      type: object
      properties:
        ProjectIds:
          type: array
          items:
            format: int32
            type: integer
        CalculationIds:
          type: array
          items:
            format: int32
            type: integer
        ConfigurationGuid:
          type: string
    ExportMasterDataRequestModel:
      type: object
      properties:
        Ids:
          type: array
          items:
            format: int32
            type: integer
        ConfigurationGuid:
          type: string
    ExportToolCalculationCdbRequest:
      required:
        - ToolCalculationId
        - CostBreakDownConfigurationUniqueKey
      type: object
      properties:
        ToolCalculationId:
          format: int32
          type: integer
        CostBreakDownConfigurationUniqueKey:
          type: string
    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
    ImportCalculationsRequestModel:
      type: object
      properties:
        Data:
          type: object
        PlantUniqueKey:
          type: string
        ConfigurationGuid:
          type: string
        TargetType:
          type: string
        TargetId:
          format: int32
          type: integer
    TcPCMResponseModel:
      type: object
      properties:
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
    ImportMasterDataRequestModel:
      type: object
      properties:
        Data:
          type: object
        PlantUniqueKey:
          type: string
        ConfigurationGuid:
          type: string
    LifetimeIncreaseRateRequestContainer:
      type: object
      properties:
        Lifetime:
          $ref: "#/components/schemas/Lifetime"
        LifetimeIncreaseRateRequest:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeIncreaseRateRequest"
    LifetimeIncreaseRateRequest:
      type: object
      properties:
        IncreaseRateHeaderUniqueIdentifier:
          type: string
        Effectivity:
          $ref: "#/components/schemas/IncreaseRateEffectivity"
    IncreaseRateEffectivity:
      type: object
      properties:
        CustomerUniqueIdentifier:
          type: string
        SupplierUniqueIdentifier:
          type: string
        SegmentUniqueIdentifier:
          type: string
        PlantUniqueIdentifier:
          type: string
        RegionUniqueIdentifier:
          type: string
        StateUniqueIdentifier:
          type: string
        IncreaseRateTagUniqueIdentifier:
          type: string
        ClassificationProperty1UniqueIdentifier:
          type: string
        ClassificationProperty1ListItemUniqueIdentifier:
          type: string
        ClassificationProperty2UniqueIdentifier:
          type: string
        ClassificationProperty2ListItemUniqueIdentifier:
          type: string
    LifetimeIncreaseRateResult:
      type: object
      properties:
        LifetimeIncreaseRateRequest:
          $ref: "#/components/schemas/LifetimeIncreaseRateRequest"
        LifetimeIncreaseRateResponse:
          $ref: "#/components/schemas/LifetimeIncreaseRateResponse"
    LifetimeIncreaseRateResponse:
      type: object
      properties:
        IncreaseRateHeaderUniqueIdentifier:
          type: string
        ActualEffectivity:
          $ref: "#/components/schemas/IncreaseRateEffectivity"
        LookupQuality:
          type: string
        Message:
          type: string
        IncreaseRatePeriodResults:
          type: array
          items:
            $ref: "#/components/schemas/IncreaseRatePeriodResult"
    IncreaseRatePeriodResult:
      type: object
      properties:
        Period:
          $ref: "#/components/schemas/Period"
        IncreaseRateValue:
          format: double
          type: number
        PriceUnitUniqueIdentifier:
          type: string
    LifetimeMaterialRequestContainer:
      type: object
      properties:
        Lifetime:
          $ref: "#/components/schemas/Lifetime"
        LifetimeMaterialPriceRequest:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeMaterialPriceRequest"
    LifetimeMaterialPriceRequest:
      type: object
      properties:
        MaterialItemNumber:
          type: string
        MaterialRevisionNumber:
          type: string
        QuantityUnitUniqueIdentifier:
          type: string
        Effectivity:
          $ref: "#/components/schemas/MaterialEffectivity"
    MaterialEffectivity:
      type: object
      properties:
        CustomerUniqueIdentifier:
          type: string
        SupplierUniqueIdentifier:
          type: string
        StateUniqueIdentifier:
          type: string
        MaterialPriceTagUniqueIdentifier:
          type: string
        PlantNumber:
          type: string
        RegionUniqueIdentifier:
          type: string
        SegmentUniqueIdentifier:
          type: string
        ProcurementTypeUniqueIdentifier:
          type: string
        ClassificationProperty1UniqueIdentifier:
          type: string
        ClassificationProperty1ListItemUniqueIdentifier:
          type: string
        ClassificationProperty2UniqueIdentifier:
          type: string
        ClassificationProperty2ListItemUniqueIdentifier:
          type: string
        ClassificationProperty3UniqueIdentifier:
          type: string
        ClassificationProperty3ListItemUniqueIdentifier:
          type: string
    LifetimeMaterialPriceResponse:
      type: object
      properties:
        LifetimeMaterialPriceRequest:
          $ref: "#/components/schemas/LifetimeMaterialPriceRequest"
        MaterialRevisionResult:
          $ref: "#/components/schemas/MaterialRevisionResult"
        LifeTimeMaterialResult:
          $ref: "#/components/schemas/LifeTimeMaterialResult"
    MaterialRevisionResult:
      type: object
      properties:
        MaterialRevisionNumber:
          type: string
        LookupQuality:
          type: string
        Message:
          type: string
    LifeTimeMaterialResult:
      type: object
      properties:
        QuantityUnitUniqueIdentifier:
          type: string
        BaseQuantityUniqueIdentifier:
          type: string
        QuantityUnitFactor:
          format: double
          type: number
        CalculationFactor:
          format: double
          type: number
        ActualEffectivity:
          $ref: "#/components/schemas/MaterialEffectivity"
        LookupQuality:
          type: string
        Message:
          type: string
        MaterialPeriodResult:
          type: array
          items:
            $ref: "#/components/schemas/MaterialPeriodResult"
    MaterialPeriodResult:
      type: object
      properties:
        Period:
          $ref: "#/components/schemas/Period"
        MaterialPrices:
          type: array
          items:
            $ref: "#/components/schemas/MaterialPrice"
    MaterialPrice:
      type: object
      properties:
        MaterialPriceUniqueIdentifier:
          format: int32
          type: integer
        MaterialPrice:
          format: double
          type: number
        QuantityFrom:
          format: double
          type: number
        CurrencyIsoCode:
          type: string
    LifetimeOverheadRequestContainer:
      type: object
      properties:
        Lifetime:
          $ref: "#/components/schemas/Lifetime"
        LifetimeOverheadRequest:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeOverheadRequest"
    LifetimeOverheadRequest:
      type: object
      properties:
        CostTypeUniqueIdentifier:
          type: string
        CalculationElementUniqueIdentifier:
          type: string
        ClassificationUniqueIdentifier:
          type: string
        Effectivity:
          $ref: "#/components/schemas/OverheadEffectivity"
    OverheadEffectivity:
      type: object
      properties:
        CustomerUniqueIdentifier:
          type: string
        SupplierUniqueIdentifier:
          type: string
        SegmentUniqueIdentifier:
          type: string
        PlantUniqueIdentifier:
          type: string
        RegionUniqueIdentifier:
          type: string
        StateUniqueIdentifier:
          type: string
        OverheadTagUniqueIdentifier:
          type: string
        ProcurementTypeUniqueIdentifier:
          type: string
        ClassificationProperty1UniqueIdentifier:
          type: string
        ClassificationProperty1ListItemUniqueIdentifier:
          type: string
        ClassificationProperty2UniqueIdentifier:
          type: string
        ClassificationProperty2ListItemUniqueIdentifier:
          type: string
        ClassificationProperty3UniqueIdentifier:
          type: string
        ClassificationProperty3ListItemUniqueIdentifier:
          type: string
        ClassificationProperty4UniqueIdentifier:
          type: string
        ClassificationProperty4ListItemUniqueIdentifier:
          type: string
    LifetimeOverheadResult:
      type: object
      properties:
        LifetimeOverheadRequest:
          $ref: "#/components/schemas/LifetimeOverheadRequest"
        LifetimeOverheadResponse:
          $ref: "#/components/schemas/LifetimeOverheadResponse"
    LifetimeOverheadResponse:
      type: object
      properties:
        CostTypeUniqueIdentifier:
          type: string
        CalculationElementUniqueIdentifier:
          type: string
        ClassificationUniqueIdentifier:
          type: string
        ActualEffectivity:
          $ref: "#/components/schemas/OverheadEffectivity"
        LookupQuality:
          type: string
        Message:
          type: string
        OverheadPeriodResults:
          type: array
          items:
            $ref: "#/components/schemas/OverheadPeriodResult"
    OverheadPeriodResult:
      type: object
      properties:
        Period:
          $ref: "#/components/schemas/Period"
        OverheadRates:
          type: array
          items:
            $ref: "#/components/schemas/OverheadRate"
    OverheadRate:
      type: object
      properties:
        QuantityFrom:
          format: double
          type: number
        OverheadValue:
          format: double
          type: number
        UnitUniqueIdentifier:
          type: string
        UnitFactor:
          format: double
          type: number
    TcPCMWebApiResponseModel_of_List_of_LifetimeCostFactorResult:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeCostFactorResult"
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
    Response_of_CreateSamAuthUserResponseModel:
      type: object
      properties:
        Data:
          $ref: "#/components/schemas/CreateSamAuthUserResponseModel"
    TcPCMWebApiResponseModel_of_List_of_LifeTimeLookupExchangeRateByNameResult:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/LifeTimeLookupExchangeRateByNameResult"
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
    TcPCMWebApiResponseModel_of_DataTable:
      type: object
      properties:
        data:
          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"
    TcPCMWebApiResponseModel_of_List_of_LifetimeIncreaseRateResult:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeIncreaseRateResult"
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
    TcPCMWebApiResponseModel_of_List_of_LifetimeMaterialPriceResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeMaterialPriceResponse"
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
    TcPCMWebApiResponseModel_of_List_of_LifetimeOverheadResult:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/LifetimeOverheadResult"
        success:
          type: boolean
        code:
          type: string
        message:
          type: string
