openapi: 3.0.1
info:
  title: SiGREEN REST API
  version: 1.0.0-beta
  description: >
    This API specification serves as reference within SiGREEN project for how to
    design and specify HTTPs-based APIs.
  contact:
    name: SiGREEN API Support
    email: sigreensupport.industry@siemens.com
servers:
  - url: https://app.sigreen.siemens.com/api/1.0.0-beta/pcf
    description: SiGREEN Production Server
  - url: https://app-uat.sigreen-playground.siemens.cloud/api/1.0.0-beta/pcf
    description: SiGREEN User Acceptance Test (UAT) Server
tags:
  - name: PCF
    description: >
      The following APIs are used for creating the **Product Carbon Footprint (PCF)** of any product via the **SiGREEN** application.
      To be able to create the PCF, it is mandatory that the product and its IDs must be generated first via the **SiGREEN** application.
      For additional information, refer to the respective APIs available in the **API reference** page under **SiGREEN APIs**.
paths:
  /products/{productId}:
    post:
      tags:
        - PCF
      summary: "To create a credential for a specific product in a company in SiGREEN."
      description: "This API is currently available for creating a PCF which is based on the **Together for Sustainability (TfS)** v2 standard. Guidelines for the standard are located on the TfS Initiative website: <https://www.tfs-initiative.com/>."
      operationId: "createPCF"
      parameters:
        - in: path
          name: productId
          schema:
            type: string
          required: true
          description: "Alphanumeric Id for identifying the product of the company in SiGREEN."
          example: "401765"
      requestBody:
        description: "Request should contain fields as mentioned in the schema."
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VerifiedPCFData"
      responses:
        "202":
          description: "A job id will be returned upon successful validation."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PCFResponseData"
        "400":
          description: "Bad request."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        "401":
          description: "Unauthorized."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        "403":
          description: "Forbidden."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        "404":
          description: "Not found."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        "5XX":
          description: "Unexpected error."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
  /jobs/{jobType}/{jobId}/status:
    get:
      tags:
        - PCF
      summary: "It is to know whether a credential has been created or not."
      description: "When the **Create PCF** API is successful (meaning that there are no errors in the PCF), the users will receive a response with the respective **Job ID**, **Job Type**, and **Status**. The **GET Jobs** API is available to view the status of the PCF creation along with the allocated PCF ID (**pcfID**)."
      operationId: "getPCFJobStatus"
      parameters:
        - in: path
          name: jobType
          schema:
            type: string
          required: true
          description: "Type of the job in order to fetch job status."
          example: "CREATE_PCF"
        - in: path
          name: jobId
          schema:
            type: string
          required: true
          description: "Alphanumeric identifier to fetch job status in SiGREEN."
          example: "098QA0-UK9099-HJH98275-LML891"
      responses:
        '200':
          description: "A specific job details, whether job completed or not."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PCFJobStatus"
        '401':
          description: "Unauthorized."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        '403':
          description: "Forbidden."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        '404':
          description: "Not found."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
        '5XX':
          description: "Unexpected error."
          content:
            application/problem+json:
              schema:
                $ref: "#/components/schemas/Problem"
security:
  - endpoint_auth: []
components:
  schemas:
    Company:
      type: object
      description: "Company details."
      example:
        companyIds: [ "company" ]
      required:
        - companyIds
      properties:
        companyIds:
          type: array
          description: "A list of company IDs."
          items:
            type: string
            maxLength: 200
            example: "companyID1, companyID2, companyID3"
            description: "Company IDs."
    Product:
      type: object
      description: "Product details."
      example:
        productIds: [ "401765", "4303F98A-785F" ]
        productCodeCas: "58-08-2"
        productDescription: "Ethanol, 95% solution"
      required:
        - productIds
      properties:
        productIds:
          type: array
          items:
            type: string
          example:
            [
              "401765",
              "4303F98A-785F",
            ]
          description: "All relevant product identifiers, e.g. supplier part number, GTIN, article number, CPC classification, CAS Number, BOM Version, batch number etc."
        productCodeCas:
          type: string
          maxLength: 20
          example: "58-08-2"
          description: "The corresponding CAS number to your product (unique identification number assigned to chemical substances)."
        productDescription:
          type: string
          maxLength: 2000
          example: "Ethanol, 95% solution"
          description: "Brief description of the product (for example functions and technical parameters)."
    Problem:
      type: object
      properties:
        type:
          type: string
          example: "https://developer.siemens.com/sigreen/validation-error.html"
          description: "A URI reference that identifies the problem type. This should be a human-redable documentation for the problem type (e.g. list of SiGREEN Validation errors). When this member is not present, its value is assumed to be 'about:blank'."
        title:
          type: string
          example: "Bad request"
          description: "trueDeveloper friendly, human-readable description or summary that SHOULD NOT change from occurrence to occurrence of the problem. In case of using a custom HTTP status codes in the status field of the error object, the title MUST provide a concise description of the HTTP error code (for example: status: '599', title: 'Network Connection Timeout')."
        status:
          type: string
          example: "400"
          description: "Numeric HTTP status code for the specific error."
        traceId:
          type: string
          example: "UUID"
          description: "A unique string identifier (UUID), representing a flow through the system."
        instance:
          type: string
          example: "/api/v1/products/{productId}"
          description: "A URI reference that points to the specific resource where the problem was identified (for example: points to the api resource /api/v1/products/{productId})."
        errors:
          type: array
          description: "Extended error array to include descriptions about errors like validation errors."
          items:
            $ref: "#/components/schemas/Errors"
          example:
                  [
                    {
                      "detail": "Invalid Date Format. Please send valid date format (for eg: yyyy-MM-dd'T'HH:mm:ss'Z')",
                      "code": "SIG_VLD-092",
                      "pointer": "/data/0/from",
                    },
                  ]
    Errors:
      type: object
      properties:
        detail:
          type: string
          example: "Invalid Date Format. Please send valid date format (for eg: yyyy-MM-dd'T'HH:mm:ss'Z')"
          description: "Developer friendly, human-readable, detailed description specific to the occurrence of the problem."
        code:
          type: string
          example: "SIG_VLD-092"
          description: "trueString with a generated pointer to the wrong value; Collections integrated as an integer, starts with 0."
        pointer:
          type: string
          example: "/data/0/from"
          description: "An application-specific error code, expressed as a string value, mostly is this used for validation errors. The format and type of code representation MUST be harmonized across all services within SiGREEN. The code focuses on programs and doesnâ€™t have to be human-readable."
    PCFResponseData:
      type: object
      properties:
        jobId:
          type: string
          example: "098QA0-UK9099-HJH98275-LML891"
          description: "A unique string identifier (UUID), representing a flow through the system."
        jobType:
          type: string
          example: "CREATE_PCF"
          description: "Type of the job."
        jobStatus:
          type: string
          example: "PENDING"
          description: "Status of the job."
    PCFData:
      type: object
      description: "PCF data details."
      required:
        - declaredUnit
        - unitaryProductAmount
        - productMassPerDeclaredUnit
        - exemptedEmissionsPercent
        - geographyRegionOrSubregion
        - referencePeriodStart
        - referencePeriodEnd
        - created
        - validityPeriodEnd
        - crossSectoralStandardsUsed
        - characterizationFactors
        - productOrSectorSpecificRules
        - allocationRulesDescription
        - allocationWasteIncineration
        - secondaryEmissionFactorSources
      properties:
        scopePcf:
          $ref: "#/components/schemas/ScopePcf"
        declaredUnit:
          type: string
          enum: [ "piece", "kg", "L", "m3", "m2", "kWh", "MJ", "tkm" ]
          example: "kg"
          description: "The declared unit is the unit in which the product is declared, e.g. kg, piece, L, m3, m2, kWh, MJ, tkm."
        unitaryProductAmount:
          type: string
          format: float
          maxLength: 20
          minimum: 0
          example: "1"
          description: "Quantity (amount) of the declared unit as numerical value. Commonly the quantity is defined a value 1, e.g. 1 kg."
        productMassPerDeclaredUnit:
          type: string
          format: float
          maxLength: 15
          minimum: 0
          example: "1.6"
          description: "Mass of the product (excluding packaging) per declared unit in kg, e.g. for a circuit board with a declared unit of one piece the mass could be stated as 0.123 kg."
        productionStage:
          $ref: "#/components/schemas/ProductionStage"
        distributionStage:
          $ref: "#/components/schemas/DistributionStage"
        productCarbonContent:
          $ref: "#/components/schemas/ProductCarbonContent"
        precedingPCFIds:
          type: array
          description: "A list of preceding PCF Ids"
          maxLength: 400
          example: [ "id1", "id2", "id3" ]
          items:
            type: string
            description: "PCF IDs of previously existing PCFs which will be succeeded by the current PCF."
        exemptedEmissionsPercent:
          type: string
          format: float
          maxLength: 15
          minimum: 0
          maximum: 10
          example: "1"
          description: "Applied cut-off criteria in percent of total emissions. This specifies which percentage of emissions were excluded from the PCF in total, in order to reduce efforts in data collection of irrelevant processes."
        exemptedEmissionsDescription:
          type: string
          maxLength: 300
          example: "exemptedEmissionsDescription"
          description: "Rationale behind exclusion of specific PCF emissions."
        boundaryProcessesDescription:
          type: string
          maxLength: 2000
          example: "boundaryProcessesDescription"
          description: "Brief description of the significantly contributing manufacturing steps of the product (including general description of used technologies)."
        typeRecycledContent:
          type: string
          enum: [ "post-industrial", "post-consumer" ]
          example: "post-industrial"
          description: "The type of recycled content. The type of the recycled content can only be post-industrial or post-consumer."
        ccuCo2Origin:
          type: string
          maxLength: 1000
          example: "Direct air capture"
          description: "Source from where CO2 is captured (e.g. DAC/direct air capture or source ammonia plant)."
        geographyCountrySubdivision:
          type: string
          example: "DE-BY"
          pattern: "^[A-Z]{2}-[A-Z0-9]{1,3}$"
          description: "City/state as country subdivision. According to ISO 3166-2 alpha-2 subdivision code."
        geographyCountry:
          type: string
          example: "DE"
          pattern: "^[A-Z]{2}$"
          description: "Geography country according to ISO 3166-2 alpha-2 country code."
        geographyRegionOrSubregion:
          type: string
          enum:
            [
              "Africa",
              "Americas",
              "Asia",
              "Europe",
              "Oceania",
              "Australia and New Zealand",
              "Central Asia",
              "Eastern Asia",
              "Eastern Europe",
              "Latin America and the Caribbean",
              "Melanesia",
              "Micronesia",
              "Northern Africa",
              "Northern America",
              "Northern Europe",
              "Polynesia",
              "South-eastern Asia",
              "Southern Asia",
              "Southern Europe",
              "Sub-Saharan Africa",
              "Western Asia",
              "Western Europe",
              "Global",
            ]
          example: "Europe"
          description: "This geographical information refers to the locations of the factory gates of the last manufacturing step. State as described in ISO 3166, e.g. Global, EUROPE, DE."
        locationProductHandover:
          type: string
          enum: [ "Own factory gate", "Customer gate", "Other" ]
          example: "Own factory gate"
          description: "The location of product handover/location up to where emissions are accounted for."
        referencePeriodStart:
          type: string
          format: date-time
          example: "2022-11-20T08:30:00.000Z"
          description: "Start of time period of data collection for primary data sources (this does not refer to publication dates of secondary data). DateTime (ISO 8601; UTC Timezone)"
        referencePeriodEnd:
          type: string
          format: date-time
          example: "2022-11-20T08:30:00.000Z"
          description: "End of time period of data collection for primary data sources. DateTime (ISO 8601; UTC Timezone)"
        created:
          type: string
          format: date-time
          example: "2022-11-20T08:30:00.000Z"
          description: "The time stamp at which the PCF has been declared, independently of when or if it has been shared. This represents the validity period start unless specified separately. DateTime (ISO 8601; UTC Timezone)"
        validityPeriodStart:
          type: string
          format: date-time
          example: "2022-11-20T08:30:00.000Z"
          description: "The time stamp at which the PCF is declared valid. If not specified, the validity period starts with the date of issue. DateTime (ISO 8601; UTC Timezone)"
        validityPeriodEnd:
          type: string
          format: date-time
          example: "2022-11-21T08:30:00.000Z"
          description: "Time stamp declaring the expected end of the use period for this declaration or date of expected update (i.e. when does the data validity period end?). DateTime (ISO 8601; UTC Timezone)"
        crossSectoralStandardsUsed:
          type: array
          items:
            type: string
          maxLength: 200
          example: [ "ISO 14067", "Pathfinder v1" ]
          description: "The standard that the PCF calculation is based on and compliant to (multiple entries are possible). Please note: the PCF can be calculated according to a different standard than the standard defining the data model used for reporting the PCF. Following standards are considered ISO 14067, Pathfinder v1, Pathfinder v2, GHG Protocol Product, PAS 2050, ISO 14040-44, PEF. Apart from these standards user can allow to add one more standard which is know to user. This is considered as Other standard while viewing credential."
        characterizationFactors:
          type: string
          enum:
            [ "AR6",
              "AR5",
              "Unspecified"
            ]
          example: "AR6"
          description: "The IPCC (Intergovernmental Panel of Climate change) regularly releases global warming potential (GWP) values for climate gases related to CO2. These GWP values are released in Assessment Reports (AR), which are numbered. The AR number can be used to track the age and accuracy of the GWP values used in reporting."
        productOrSectorSpecificRules:
          type: string
          enum:
            [
              "Catena-X Rulebook v1",
              "Catena-X Rulebook v2",
              "TFS Guideline v2",
              "EN 50693",
              "EN 15804",
              "BPX 30-323",
              "Not specified"
            ]
          maxLength: 200
          example: "Catena-X Rulebook v1"
          description: "Any sector guidance framework, product category rule (PCR) or product specific rule (PSR) published by a specific operator, followed and applied during PCF calculation. Such rulesets provide specific guidance and enhance comparability between assessments of different suppliers in the same category (sector)."
        allocationRulesDescription:
          type: string
          maxLength: 1000
          example: "Weight based allocation"
          description: "Description of the allocation rules applied to multi-output processes in your foreground data and explain the underlying reasons (way of allocating all activities from your manufacturing steps to the declared unit). Description of the allocation rules applied to end-of-life processes (also refers to manufacturing related waste)."
        allocationWasteIncineration:
          type: string
          enum: [ "cut-off", "reverse cut-off", "system expansion" ]
          example: "cut-off"
          description: "Material recycling and waste treatment with energy recovery are considered separate and not equal. Incineration is the least favorable solution because it is a final disposal. One of the three allocation approaches shall be followed: Cut-off approach also known as recycled content approach; Reverse Cut-off approach also known as waste allocation; Substitution. Please state which approach was applied and if available, according to which PCR."
        allocationRecycledCarbon:
          type: string
          enum: [ "upstream system expansion", "cut-off" ]
          example: "upstream system expansion"
          description: "Selected allocation approach for any recycled material, e.g. upstream system expansion or cut-off in accordance with a certain PCR."
        allocationCcuCarbon:
          type: string
          maxLength: 1000
          example: "allocationCcuCarbon"
          description: "Allocation approach used in case of including carbon capture and utilization (CCU) processes within the system boundaries, e.g. system expansion and substitution in accordance with a certain PCR."
        primaryDataShare:
          type: string
          minimum: 0
          maximum: 100
          maxLength: 15
          example: "20"
          description: "Share of primary data in the final PCF, calculated according to current WBCSD Pathfinder Framework. This can be done by calculating the proportion (percentage) of the total GHG emissions (CO2e) that is derived using primary data."
        secondaryEmissionFactorSources:
          type: array
          items:
            type: string
          maxLength: 200
          description: "Secondary data sources and versions used for this declaration, e.g. data bases such as ecoinvent."
          example: [ "ecoinvent" ]
        dqi:
          $ref: "#/components/schemas/Dqi"
        comment:
          type: string
          example: "Comment"
          maxLength: 10000
          description: "Please comment/document anything relevant for a receiving party or yourself, necessary to understand it representative for his/her application."
    VerifiedPCFData:
      type: object
      required:
        - company
        - product
        - pcfData
      properties:
        company:
          $ref: '#/components/schemas/Company'
        product:
          $ref: '#/components/schemas/Product'
        pcfData:
          $ref: '#/components/schemas/PCFData'
    PCFJobStatus:
      type: object
      properties:
        status:
          type: string
          example: "COMPLETED"
          description: "Status of the job."
        message:
          type: string
          example: "Credential created successfully"
          description: "Meaning full job status message."
        pcfId:
          type: string
          example: "328098-898JKJK-HJH54564-KJL890"
          description: "pcf Id will be generated in the response only when the status is completed. If the job status is not completed, pcfId will not be present in the response."
        traceId:
          type: string
          example: "098QA0-UK9099-HJH98275-LML891"
          description: "A unique string identifier (UUID), representing a flow through the system."
    ScopePcf:
      type: object
      required:
        - partialFullPcf
        - packagingEmissionsIncluded
      properties:
        partialFullPcf:
          type: string
          enum: ["Cradle-to-gate", "Cradle-to-grave"]
          example: "Cradle-to-gate"
          description: "Partial or a full PCF."
        packagingEmissionsIncluded:
          $ref: "#/components/schemas/ScopePcfType"
    ScopePcfType:
      type: string
      description: "Type of scope pcf."
      enum: ["included", "excluded"]
      example: "included"
    ProductCarbonContent:
      type: object
      description: "Product carbon content details."
      example:
        carbonContentTotal: "79.86801562912"
        carbonContentBiogenic: "79.86801562912"
        carbonContentRecycled: "79.86801562912"
        carbonContentCcuBased: "79.86801562912"
      required:
        - carbonContentTotal
      properties:
        carbonContentTotal:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Total carbon content accounts for the embodied mass of carbon (kg C) per declared unit of product."
        carbonContentBiogenic:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Biogenic carbon content accounts for the embodied mass of biogenic carbon (kg C) per declared unit of product."
        carbonContentRecycled:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Recycled carbon content accounts for the embodied mass of recycled (physically or biomass balance-based) carbon (kg C) per declared unit of product."
        carbonContentCcuBased:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "CCU-based carbon content accounts for the embodied mass of carbon (kg C) per declared unit of product resulting from the use of carbon capture and utilization technologies."
    Dqi:
      type: object
      description: "Data quality indicators."
      example:
        technologicalDQR: "1.2"
        temporalDQR: "1.3"
        geographicalDQR: "1.8"
        completenessDQR: "2.5"
        reliabilityDQR: "2.5"
      properties:
        technologicalDQR:
          type: string
          format: float
          minimum: 1
          maximum: 3
          maxLength: 15
          example: "1.2"
          description: "The degree to which the data reflects the actual technology(ies) used; 1 -Good: Data generated using the same technology; 2 -Fair: Data generated using a similar but different technology (based on secondary data sources); 3 -Poor: Data of a different or unknown"
        temporalDQR:
          type: string
          format: float
          minimum: 1
          maximum: 3
          maxLength: 15
          example: "1.3"
          description: "The degree to which the data reflects the actual time (e.g., year) or age of the process; 1 -Good: Data from the same reporting year; 2- Fair: Data less than 5 years old; 3 -Poor: Data more than 5 years old"
        geographicalDQR:
          type: string
          format: float
          minimum: 1
          maximum: 3
          maxLength: 15
          example: "1.8"
          description: "The degree to which the data reflects the actual geographic location of the processes within the inventory boundary (e.g., country or region); 1 -Good: Data from the same country or country subdivision; 2- Fair: Data from the Same region or subregion; 3 -Poor: Global data or from an unknow region"
        completenessDQR:
          type: string
          format: float
          minimum: 1
          maximum: 3
          maxLength: 15
          example: "2.5"
          description: "The degree to which the data is statistically representative of the process sites; 1 -Good: Activity data collected for all relevant sites for specified period; 2- Fair: Activity data collected for <50% of sites for specified period or >50% of sites for shorter period; 3 -Poor: Activity data collected for <50% of sites for shorter time period or unknown"
        reliabilityDQR:
          type: string
          format: float
          minimum: 1
          maximum: 3
          maxLength: 15
          example: "2.5"
          description: "The degree to which the sources, data collection methods, and verification procedures used to obtain the data are dependable; 1 -Good: Measured activity data; 2- Fair: Activity data partly based on assumptions; 3 -Poor: Financial data or nonqualified estimate"
    DistributionStage:
      type: object
      description: "Distribution stage details."
      example:
        pcfIncludingBiogenic: "79.86801562912"
        pcfExcludingBiogenic: "79.86801562912"
        fossilGhgEmissions: "79.86801562912"
        biogenicCarbonEmissionsOtherThanCO2: "79.86801562912"
        biogenicCarbonWithdrawal: "79.86801562912"
        dLucGhgEmissions: "79.86801562912"
        luGhgEmissions: "79.86801562912"
        aircraftGhgEmissions: "79.86801562912"
      properties:
        pcfIncludingBiogenic:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Total GHG emissions and removals including biogenic CO2 (typically excluding iLUC). kg CO2e/declared unit"
        pcfExcludingBiogenic:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Total GHG emissions and removals excluding biogenic CO2 (typically excluding iLUC). kg CO2e/declared unit"
        fossilGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Fossil GHG emissions and removals (including aircraft emissions, if aircraft emissions are not reported separately). kg CO2e/declared unit"
        biogenicCarbonEmissionsOtherThanCO2:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Biogenic GHG emissions excluding biogenic CO2. kg CO2e/declared unit"
        biogenicCarbonWithdrawal:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Biogenic CO2 removal calculated by converting biogenic carbon contained in the product to kg CO2. kg CO2e/declared unit"
        dLucGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions and removals occurring as result of direct land use change (aggregated values of dLUC and LU are to be reported as dLUC). kg CO2e/declared unit"
        luGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions and removals occurring as result of land use (aggregated values of dLUC and LU are to be reported as dLUC). kg CO2e/declared unit"
        aircraftGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions occurring as a result of aircraft engine usage for the transport of the product (without application of multipliers). kg CO2e/declared unit"
    ProductionStage:
      type: object
      description: "Production stage details."
      example:
        pcfIncludingBiogenic: "79.86801562912"
        pcfExcludingBiogenic: "79.86801562912"
        fossilGhgEmissions: "79.86801562912"
        biogenicCarbonEmissionsOtherThanCO2: "79.86801562912"
        biogenicCarbonWithdrawal: "79.86801562912"
        dLucGhgEmissions: "79.86801562912"
        luGhgEmissions: "79.86801562912"
        aircraftGhgEmissions: "79.86801562912"
      required:
        - pcfExcludingBiogenic
      properties:
        pcfIncludingBiogenic:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Total GHG emissions and removals including biogenic CO2 (typically excluding iLUC). kg CO2e/declared unit"
        pcfExcludingBiogenic:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Total GHG emissions and removals excluding biogenic CO2 (typically excluding iLUC). kg CO2e/declared unit"
        fossilGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Fossil GHG emissions and removals (including aircraft emissions, if aircraft emissions are not reported separately). kg CO2e/declared unit"
        biogenicCarbonEmissionsOtherThanCO2:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Biogenic GHG emissions excluding biogenic CO2. kg CO2e/declared unit"
        biogenicCarbonWithdrawal:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "Biogenic CO2 removal calculated by converting biogenic carbon contained in the product to kg CO2. kg CO2e/declared unit"
        dLucGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions and removals occurring as result of direct land use change (aggregated values of dLUC and LU are to be reported as dLUC). kg CO2e/declared unit"
        luGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions and removals occurring as result of land use (aggregated values of dLUC and LU are to be reported as dLUC). kg CO2e/declared unit"
        aircraftGhgEmissions:
          type: string
          format: float
          maxLength: 15
          example: "79.86801562912"
          description: "GHG emissions occurring as a result of aircraft engine usage for the transport of the product (without application of multipliers). kg CO2e/declared unit"
  securitySchemes:
    endpoint_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
