openapi: 3.2.0 info: title: Kelowna Production myCC - End To End Testing API version: v1 tags: - name: myCC - End To End Testing paths: /MyCCE2E/TestStructure: post: tags: - myCC - End To End Testing summary: Creates a MyCC account with the associated structure description: 'VALIDATION This endpoint handles the setup for all testing cases. There is parameter validation in place to avoid conflicting configuration choices. - Onboarding enabled account cannot have more than 3 lanes. - For upload log based data integration, there has to be at least 1 lane with a timestamp 3 months in the past. - Each lane must have an installation timestamp - Non ''Command Alkon'' lanes cannot have lynx timestamps. - The installed timestamp for lynx, when set, needs to be before the last file received timestamp. - Lanes with production data must have a timestamp at least 4 months in the past. - A mix design''s compressive strength must be greater than 0 or null. - For any given mix design, the design strength must be defined unless the QC scenario is NoData - For any given mix design, the mix must have a baseline when the QC scenario is Sufficient. FUNCTIONALITY Insights - Can create a myCC account with an arbitrary number of lanes, each with an installation timestamp less than 6 months ago or older than 7 months ago. - By the setting the `ExceededProductionGoal` production data scenario, the corresponding lane has data available for more than 1 month. - For any of the production scenarios, except for `NoData`, lanes have data available in the Insights report. - For any of the production scenarios, except for `NoData`, there is data available in the Environmental report. - For any of the production scenarios, except for `NoData`, there is daily summary data available. - A lane using the Lagging scenario, is returned by the `/Accounts/{myCCId}/Lanes/Lagging` - A lane using `ExceededProductionGoal` will be marked as `ExceedingProductionGoal` by the `/Accounts/{myCCId}/Lanes/RecentProduction` endpoint. - A lane using the `Lagging` scenario is marked as not ExceedingProductionGoal by the `/Accounts/{myCCId}/Lanes/RecentProduction` endpoint. - A lane using the `SuggestionActions` scenario is returned by the `/Accounts/{myCCId}/Lanes/SuggestedActions` endpoint. - For any of the production scenarios, except for `NoData` the production report will be populated with the lane''s injections. MyData - Lanes with a Command batching software are eligible for lynx. - Lanes with a lynx installation timestamp are considered installed. - Lanes without a Command batching software are not considered eligible. - For eligible lanes, a lynx installation package can be downloaded. Note: The zip is fake, and does not actually generate the api key, configuration file, etc. Batching Data - Accounts can be created with a specified data integration type. - The lynx data integration type can be set on a per lane basis, using the lynx timestamps. - For the `FileUpload` data integration type, action items are available only when the `IncludeError` flag is set to true. - When the `LastLynxFileSeenTimestamp` is set to more than 14 days in the past, the lynx batching table will show an error for this lane. QcData - For mix designs with the `Limited` qc data scenario, the there will be action items associated with them. - Each qc data scenario directly corresponds to the mix design status in the `/Accounts/{myCCId}/MyData/Qc/Table` endpoint. Mix Design Manager - Each lane can be created with an arbitrary number of mix designs. - For each, a mix strength can be specified. - Each mix can be created with or without a baseline mix. - Each mix can or cannot be user created.' requestBody: description: Test account data arguments. content: application/json: schema: $ref: '#/components/schemas/TestStructureArgs' text/json: schema: $ref: '#/components/schemas/TestStructureArgs' application/*+json: schema: $ref: '#/components/schemas/TestStructureArgs' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' application/json: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' text/json: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' security: - {} - {} - M2MAuth: - applicationId - roles operationId: postMyCCE2ETestStructure x-operation-id-source: derived /MyCCE2E/CreateUser/{myCCAccountId}: post: tags: - myCC - End To End Testing summary: Adds a new MyCC user to an existing MyCC account associated with a TestClient… parameters: - name: myCCAccountId in: path description: MyCC account Id required: true schema: type: integer format: int32 - name: email in: query description: Email used to create user with. If no email is provided, a random one is generated. schema: type: string - name: permissionGroup in: query description: The user's intended permissions schema: $ref: '#/components/schemas/PermissionGroup' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' application/json: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' text/json: schema: $ref: '#/components/schemas/NewMyCCTestUserResponse' security: - {} - {} - M2MAuth: - applicationId - roles operationId: postMyCCE2ECreateUserByMyCCAccountId x-operation-id-source: derived /MyCCE2E/RemoveUser/{myCCAccountId}: delete: tags: - myCC - End To End Testing summary: Deletes a user from an existing MyCC account associated with a TestClient… parameters: - name: myCCAccountId in: path description: MyCC account Id required: true schema: type: integer format: int32 - name: email in: query description: The user's email schema: type: string responses: '200': description: OK security: - {} - {} - M2MAuth: - applicationId - roles operationId: deleteMyCCE2ERemoveUserByMyCCAccountId x-operation-id-source: derived /MyCCE2E/OnboardingStaffTasks: put: tags: - myCC - End To End Testing summary: Writes staff task values to salesforce parameters: - name: myCCAccountId in: query description: Id of testing account. schema: type: integer format: int32 requestBody: description: List of staff tasks to update content: application/json: schema: type: array items: $ref: '#/components/schemas/StaffTask' text/json: schema: type: array items: $ref: '#/components/schemas/StaffTask' application/*+json: schema: type: array items: $ref: '#/components/schemas/StaffTask' responses: '200': description: OK security: - {} - {} - M2MAuth: - applicationId - roles operationId: putMyCCE2EOnboardingStaffTasks x-operation-id-source: derived components: schemas: E2EDataIntegrationType: enum: - FileUpload - ApiIntegration - NoData type: string QcDataScenario: enum: - Sufficient - Submitted - Limited - NoData type: string TestMyCCAccountArgs: type: object properties: hasOnboarding: type: boolean includeAccountReps: type: boolean dataIntegration: $ref: '#/components/schemas/TestDataIntegrationArgs' featureFlagNames: type: - array - 'null' items: type: string additionalProperties: false StaffTask: type: object properties: taskType: $ref: '#/components/schemas/StaffTaskType' isCompleted: type: boolean additionalProperties: false StaffTaskType: enum: - ScheduleTankInstall - ScheduleInstallCall - ScheduleQCCall - ScheduleDigitalIntegrationCall - ShipCcSystem - InstallCcSystem - CreateAndReviewTestingPlan - SetImplementationTestingDates - ScheduleGoToMarketCall - ObtainCO2Sources type: string ProductionScenario: enum: - NoData - Lagging - ExceededProductionGoal - SuggestedActions type: string E2EProjectMixArgs: type: object properties: mixCode: type: - string - 'null' qcScenario: $ref: '#/components/schemas/QcDataScenario' isUserCreated: type: boolean compressiveStrengthMpa: type: - number - 'null' format: double hasBaseline: type: boolean isBaselinePaired: type: boolean additionalProperties: false TestStructureLaneArgs: type: object properties: installedTimestamp: type: string format: date-time grouping: type: - string - 'null' productionScenario: $ref: '#/components/schemas/ProductionScenario' batchingSoftware: type: - string - 'null' lynxDownloadedTimestamp: type: - string - 'null' format: date-time lastLynxFileSeenTimestamp: type: - string - 'null' format: date-time projectMixes: type: - array - 'null' items: $ref: '#/components/schemas/E2EProjectMixArgs' additionalProperties: false TestDataIntegrationArgs: type: object properties: type: $ref: '#/components/schemas/E2EDataIntegrationType' includeFailure: type: boolean additionalProperties: false PermissionGroup: enum: - Staff - Manager - Admin type: string NewMyCCTestUserResponse: type: object properties: email: type: - string - 'null' password: type: - string - 'null' myCCAccountId: type: integer format: int32 additionalProperties: false TestStructureArgs: type: object properties: permissionGroup: $ref: '#/components/schemas/PermissionGroup' lanes: type: - array - 'null' items: $ref: '#/components/schemas/TestStructureLaneArgs' myCCAccount: $ref: '#/components/schemas/TestMyCCAccountArgs' email: type: - string - 'null' description: Email used to create user with. If no email is provided, a random one is generated. additionalProperties: false 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: {}