openapi: 3.2.0 info: title: Kelowna Production Echo API version: v1 tags: - name: Echo paths: /Sales/Opportunities: get: tags: - Echo summary: Gets a list of sales opportunities parameters: - name: limit in: query description: Results limit. Prevents swagger from breaking. schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/SalesOpportunityResponse' application/json: schema: type: array items: $ref: '#/components/schemas/SalesOpportunityResponse' text/json: schema: type: array items: $ref: '#/components/schemas/SalesOpportunityResponse' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getSalesOpportunities x-operation-id-source: derived /Customers/Management/Corporations/SalesOverview: get: tags: - Echo summary: Returns sales information pertinent to the RMPD dashboard description: Does not return masonry plants. parameters: - name: limit in: query description: The number of corporations to return (mostly so swagger doesn't break) schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/CorporationSalesOverview' application/json: schema: type: array items: $ref: '#/components/schemas/CorporationSalesOverview' text/json: schema: type: array items: $ref: '#/components/schemas/CorporationSalesOverview' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getCustomersManagementCorporationsSalesOverview x-operation-id-source: derived /ConstructionProjects: get: tags: - Echo summary: Gets a list of upcoming construction projects for map display responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ConstructionProject' application/json: schema: type: array items: $ref: '#/components/schemas/ConstructionProject' text/json: schema: type: array items: $ref: '#/components/schemas/ConstructionProject' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getConstructionProjects x-operation-id-source: derived /ConstructionProjects/Historical: get: tags: - Echo summary: Gets historical customer projects for map display parameters: - name: limit in: query description: The number of projects to return (mostly so swagger doesn't break) schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/CustomerProject' application/json: schema: type: array items: $ref: '#/components/schemas/CustomerProject' text/json: schema: type: array items: $ref: '#/components/schemas/CustomerProject' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getConstructionProjectsHistorical x-operation-id-source: derived /Customers/Management/CO2Supplier/MapLayer: get: tags: - Echo summary: Gets a list of CO2 depots and their locations parameters: - name: limit in: query description: Numbers of results to include. Mostly so swagger doesn't crash. schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/CO2SupplierMapPoint' application/json: schema: type: array items: $ref: '#/components/schemas/CO2SupplierMapPoint' text/json: schema: type: array items: $ref: '#/components/schemas/CO2SupplierMapPoint' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getCustomersManagementCO2SupplierMapLayer x-operation-id-source: derived /Customers/Management/CO2Supplier/Table: get: tags: - Echo summary: Gets a table of CO2 depots, grouped by vendor and state parameters: - name: Limit in: query description: Limit number of responses. Used for pagination. schema: type: integer format: int32 - name: Offset in: query description: Skip this many rows in the query. Used for pagination. schema: type: integer format: int32 - name: SortColumn in: query description: The name of the column to sort by. schema: type: string - name: SortOrder in: query description: The order with which to sort the table by the sort column. schema: $ref: '#/components/schemas/SortOrder' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/Co2VendorTableTableResults' application/json: schema: $ref: '#/components/schemas/Co2VendorTableTableResults' text/json: schema: $ref: '#/components/schemas/Co2VendorTableTableResults' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getCustomersManagementCO2SupplierTable x-operation-id-source: derived /Customers/Cements/Map: get: tags: - Echo summary: Gets cement plant info for display on a map parameters: - name: limit in: query description: Numbers of results to include. Mostly so swagger doesn't crash. schema: type: integer format: int32 responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/CementPlantMapPoint' application/json: schema: type: array items: $ref: '#/components/schemas/CementPlantMapPoint' text/json: schema: type: array items: $ref: '#/components/schemas/CementPlantMapPoint' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getCustomersCementsMap x-operation-id-source: derived /Customers/Cements/Table: get: tags: - Echo summary: Gets a table of cements along with their lab test results parameters: - name: Limit in: query description: Limit number of responses. Used for pagination. schema: type: integer format: int32 - name: Offset in: query description: Skip this many rows in the query. Used for pagination. schema: type: integer format: int32 - name: SortColumn in: query description: The name of the column to sort by. schema: type: string - name: SortOrder in: query description: The order with which to sort the table by the sort column. schema: $ref: '#/components/schemas/SortOrder' - name: Country in: query schema: type: string - name: State in: query schema: type: string - name: City in: query schema: type: string - name: CementTypes in: query schema: type: array items: $ref: '#/components/schemas/CementType' - name: LabResults in: query schema: type: array items: $ref: '#/components/schemas/LabResult' - name: Longitude in: query schema: type: number format: double - name: Latitude in: query schema: type: number format: double - name: RadiusKm in: query schema: type: number format: double - name: Suppliers in: query schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/EchoCementTableTableResults' application/json: schema: $ref: '#/components/schemas/EchoCementTableTableResults' text/json: schema: $ref: '#/components/schemas/EchoCementTableTableResults' security: - OrcaAuth: - applicationId - roles - {} - {} operationId: getCustomersCementsTable x-operation-id-source: derived components: schemas: EchoCementTestSample: type: object properties: cementReductionPercent: type: - number - 'null' format: double cO2DosageLitresPerM3: type: - number - 'null' format: double designStrengthMpa: type: - number - 'null' format: double cementLoadingKgPerM3: type: - number - 'null' format: double slumpMm: type: - number - 'null' format: double waterCementRatio: type: - number - 'null' format: double scmTypes: type: - array - 'null' items: $ref: '#/components/schemas/MaterialType' scmPercentage: type: - number - 'null' format: double testDate: type: - string - 'null' format: date result: $ref: '#/components/schemas/LabResult' additionalProperties: false CorporationSalesOverview: type: object properties: corporationId: type: integer format: int32 plantCount: type: integer format: int32 corporationName: type: - string - 'null' divisions: type: - array - 'null' items: $ref: '#/components/schemas/DivisionSalesOverview' isVerticallyIntegrated: type: boolean additionalProperties: false EchoCementTable: type: object properties: cementPlantId: type: integer format: int32 cementPlantName: type: - string - 'null' supplier: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' country: type: - string - 'null' groupName: type: - string - 'null' cementType: $ref: '#/components/schemas/MaterialType' cementName: type: - string - 'null' cementId: type: integer format: int32 averageCementReductionPercent: type: - number - 'null' format: double averageCO2DosageLitresPerM3: type: - number - 'null' format: double dateTested: type: - string - 'null' format: date testSamples: type: - array - 'null' items: $ref: '#/components/schemas/EchoCementTestSample' additionalProperties: false CementSalesOverview: type: object properties: cementId: type: integer format: int32 cementPlantName: type: - string - 'null' cementType: $ref: '#/components/schemas/MaterialType' cementName: type: - string - 'null' score: type: - number - 'null' format: double additionalProperties: false DivisionSalesOverview: type: object properties: divisionName: type: - string - 'null' plants: type: - array - 'null' items: $ref: '#/components/schemas/PlantSalesOverview' states: type: - array - 'null' items: $ref: '#/components/schemas/DivisionState' countries: type: - array - 'null' items: $ref: '#/components/schemas/DivisionCountry' additionalProperties: false EchoCementTableTableResults: type: object properties: count: type: integer format: int32 results: type: - array - 'null' items: $ref: '#/components/schemas/EchoCementTable' additionalProperties: false CementArgs: type: object properties: cementId: type: integer format: int32 cementType: $ref: '#/components/schemas/MaterialType' name: type: - string - 'null' score: type: - number - 'null' format: double labResult: $ref: '#/components/schemas/LabResult' additionalProperties: false Co2VendorTableTableResults: type: object properties: count: type: integer format: int32 results: type: - array - 'null' items: $ref: '#/components/schemas/Co2VendorTable' additionalProperties: false DivisionCountry: type: object properties: country: type: - string - 'null' longitude: type: - number - 'null' format: double readOnly: true latitude: type: - number - 'null' format: double readOnly: true additionalProperties: false description: Returns a list of countries grouped by division, where the division operates a plant in those countries. CO2SupplierMapPoint: type: object properties: cO2SupplierId: type: integer format: int32 companyName: type: - string - 'null' depotName: type: - string - 'null' latitude: type: number format: double longitude: type: number format: double city: type: - string - 'null' state: type: - string - 'null' country: type: - string - 'null' monthlyTankRentalFeeUsd: type: - number - 'null' format: double deliveryFeeUsd: type: - number - 'null' format: double cO2PriceUsdPerKg: type: - number - 'null' format: double tankLeadTimeWeeks: type: - number - 'null' format: double customerServiceRating: type: - number - 'null' format: double contact: type: - string - 'null' additionalProperties: false PlantSalesOverview: type: object properties: state: type: - string - 'null' city: type: - string - 'null' country: type: - string - 'null' longLat: type: - array - 'null' items: type: number format: double hasSystem: type: boolean isPrecast: type: boolean salesperson: type: - string - 'null' cO2SupplierId: type: - integer - 'null' format: int32 cements: type: - array - 'null' items: $ref: '#/components/schemas/CementSalesOverview' additionalProperties: false ConstructionProject: required: - externalConstructionProjectId type: object properties: constructionProjectId: type: integer format: int32 organization: type: - string - 'null' targetStartDate: type: - string - 'null' format: date targetEndDate: type: - string - 'null' format: date description: type: - string - 'null' address: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' country: type: - string - 'null' longitude: type: number format: double readOnly: true latitude: type: number format: double readOnly: true projectType: type: - string - 'null' isCcSpecified: type: boolean readOnly: true areaM2: type: - number - 'null' format: double monetaryValue: type: - number - 'null' format: double currencyCode: type: - string - 'null' stage: type: - string - 'null' externalConstructionProjectId: minLength: 1 type: string externalOwnerId: type: - string - 'null' ownerName: type: - string - 'null' additionalProperties: false Co2VendorTable: type: object properties: id: type: - string - 'null' companyName: type: - string - 'null' state: type: - string - 'null' depotCount: type: integer format: int32 avgCO2PriceUsdPerKg: type: - number - 'null' format: double tankLeadTimeWeeks: type: - number - 'null' format: double customerServiceRating: type: - number - 'null' format: double contact: type: - string - 'null' additionalProperties: false CustomerProject: type: object properties: divisionId: type: integer format: int32 divisionName: type: - string - 'null' name: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' lon: type: number format: double lat: type: number format: double volumeM3: type: - number - 'null' format: double startDate: type: string format: date isOngoing: type: boolean additionalProperties: false CementPlantMapPoint: type: object properties: cementPlantId: type: integer format: int32 groupName: type: - string - 'null' companyName: type: - string - 'null' plantName: type: - string - 'null' latitude: type: number format: double longitude: type: number format: double state: type: - string - 'null' country: type: - string - 'null' cements: type: - array - 'null' items: $ref: '#/components/schemas/CementArgs' additionalProperties: false LabResult: enum: - NotTested - Positive - Negative type: string DivisionState: type: object properties: state: type: - string - 'null' longitude: type: - number - 'null' format: double readOnly: true latitude: type: - number - 'null' format: double readOnly: true additionalProperties: false description: Returns a list of states grouped by division, where the division operates a plant in those states. MaterialType: enum: - Cement - CementTypeI - CementTypeIS - CementTypeIP - CementTypeIL - CementTypeII - CementTypeI_II - CementTypeI_IIMH - CementTypeI_II_LA - CementTypeIII - CementTypeIV - CementTypeII_V - CementTypeN - CementTypeS - CementCemI - CementCemII - CementCemIII - CementCemIV - CementCemV - CementCemVI - CementBlendedHydraulic - CoarseAggregate - IntermediateAggregate - FineAggregate - Fiber - FiberTypeI - FiberTypeII - FiberTypeIII - FiberTypeIV - Water - CO2 - SCM - Slag - SlagFerrous - SlagNonFerrous - SlagFerroalloy - FlyAsh - FlyAshC - FlyAshF - FlyAshN - SilicaFume - ReclaimedWater - Admixture - AirEntrainer - Retarder - SuperPlasticizer - WaterReducer - HighRangeWaterReducer - MidRangeWaterReducer - LowRangeWaterReducer - ViscosityModifier - HydrationStabilizer - CorrosionInhibitor - ShrinkageReducer - Accelerator - NonChlorideAccelerator - ChlorideAccelerator - StrengthEnhancer - AntiWashout - Waterproofer - Filler type: string CementType: enum: - CementTypeI - CementTypeIS - CementTypeIP - CementTypeIL - CementTypeII - CementTypeI_II - CementTypeI_IIMH - CementTypeI_II_LA - CementTypeIII - CementTypeIV - CementTypeII_V - CementTypeN - CementTypeS - CementCemI - CementCemII - CementCemIII - CementCemIV - CementCemV - CementCemVI - CementBlendedHydraulic type: string SalesOpportunityResponse: type: object properties: companyName: type: - string - 'null' pipelineStage: type: - string - 'null' plantCount: type: - integer - 'null' format: int32 carbonCureSalesPerson: type: - string - 'null' longitude: type: - number - 'null' format: double latitude: type: - number - 'null' format: double city: type: - string - 'null' state: type: - string - 'null' country: type: - string - 'null' additionalProperties: false SortOrder: enum: - Ascending - Descending type: string securitySchemes: OrcaAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} MyCCAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {} M2MAuth: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.carboncure.com/oauth2/authorize tokenUrl: https://auth.carboncure.com/oauth2/token scopes: {}