{"openapi":"3.0.0","paths":{"/auth-mgmt/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"tags":["Health"]}},"/auth-mgmt/authentication/determinePolicy":{"post":{"operationId":"AuthController_determinePolicy","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialsDTO"}}}},"responses":{"200":{"description":"Determines the users policy based the given user id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyResponse"}}}}},"security":[{"APIKey":[]}],"tags":["Authentication"]}},"/auth-mgmt/authentication/oauth2/code":{"post":{"operationId":"AuthController_processOidcRedirect","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OidcAuthValidationRequestDto"}}}},"responses":{"200":{"description":"Validates the given OIDC parameters and redirects the user to the ECMPS UI home page "}},"security":[{"APIKey":[]}],"tags":["Authentication"]}},"/auth-mgmt/authentication/sign-in":{"post":{"operationId":"AuthController_signIn","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInDTO"}}}},"responses":{"200":{"description":"Authenticates a user using a previously provided sessionId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDTO"}}}}},"security":[{"APIKey":[]}],"tags":["Authentication"]}},"/auth-mgmt/authentication/update-last-activity":{"post":{"operationId":"AuthController_lastActivity","parameters":[],"responses":{"200":{"description":"Refreshes a users last activity date"}},"security":[{"APIKey":[]},{"Token":[]}],"tags":["Authentication"]}},"/auth-mgmt/authentication/sign-out":{"delete":{"operationId":"AuthController_signOut","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdDTO"}}}},"responses":{"200":{"description":"Signs a user out of the system"}},"security":[{"APIKey":[]},{"Token":[]}],"tags":["Authentication"]}},"/auth-mgmt/authentication/login-state":{"get":{"operationId":"AuthController_getLoginState","parameters":[],"responses":{"200":{"description":"Gets the login state of the api","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginStateDTO"}}}}},"security":[{"APIKey":[]}],"tags":["Authentication"]}},"/auth-mgmt/tokens":{"post":{"operationId":"TokenController_createToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdDTO"}}}},"responses":{"200":{"description":"Creates a user security token (user must be authenticated)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDTO"}}}}},"security":[{"APIKey":[]},{"Token":[]}],"tags":["Tokens"]}},"/auth-mgmt/tokens/validate":{"post":{"operationId":"TokenController_validateToken","parameters":[],"responses":{"200":{"description":"Validates a user security token and returns user information (user must have valid session)","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"description":"Token validation failed - invalid or expired token, no user session found, or session token mismatch"}},"security":[{"APIKey":[]},{"Token":[]}],"tags":["Tokens"]}},"/auth-mgmt/tokens/maintenance-validate":{"post":{"operationId":"TokenController_validateMaintenance","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceVerifyParamDTO"}}}},"responses":{"200":{"description":"Validates a user security token and validate user in maintenance list","content":{"application/json":{"schema":{"type":"boolean"}}}}},"security":[{"APIKey":[]}],"tags":["Tokens"]}},"/auth-mgmt/tokens/client":{"post":{"operationId":"ClientTokenController_generateToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientCredentialsDTO"}}}},"responses":{"200":{"description":"Generates a client token, given a client id and secret","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDTO"}}}}},"security":[{"APIKey":[]}],"tags":["Tokens"]}},"/auth-mgmt/tokens/client/validate":{"post":{"operationId":"ClientTokenController_validateToken","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientIdDTO"}}}},"responses":{"200":{"description":"Validates a jwt client token","content":{"application/json":{"schema":{"type":"string"}}}}},"security":[{"APIKey":[]},{"ClientToken":[]}],"tags":["Tokens"]}},"/auth-mgmt/permissions":{"get":{"operationId":"PermissionsController_getPermissions","parameters":[{"name":"userId","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Gets mocked permissions and flag for unassigned certificate statements for provided user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacilityAccessWithCertStatementFlagDTO"}}}}},"security":[{"APIKey":[]}],"tags":["Permissions"]}},"/auth-mgmt/sign/create-activity":{"post":{"operationId":"SignController_createCromerrActivity","parameters":[{"name":"Id-Token","required":true,"in":"header","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialsSignDTO"}}}},"responses":{"200":{"description":"Creates a CROMERR activity for the logged in user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignAuthResponseDTO"}}}}},"security":[{"APIKey":[]},{"Token":[]}],"tags":["Sign"]}},"/auth-mgmt/sign/validate":{"post":{"operationId":"SignController_validate","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignValidateParamDTO"}}}},"responses":{"200":{"description":"validate before call create-activity endpoint","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignValidateResponseDTO"}}}}},"security":[{"APIKey":[]}],"tags":["Sign"]}},"/auth-mgmt/sign":{"post":{"operationId":"SignController_sign","parameters":[],"requestBody":{"required":true,"description":"Multiple files and activityId to upload","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string","format":"binary"}},"activityId":{"type":"string"}},"$ref":"#/components/schemas/"}}}},"responses":{"200":{"description":"Signs a document and binds it to an activityId"}},"security":[{"APIKey":[]}],"summary":"Upload a file","tags":["Sign"]}},"/auth-mgmt/certifications/statements":{"get":{"operationId":"CertificationsController_statements","parameters":[{"name":"monitorPlanIds","required":true,"in":"query","description":"Array of monitor plan ids","style":"pipeDelimited","explode":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Returns a list of certification statements","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CertificationStatementDTO"}}}}}}}},"security":[{"APIKey":[]}],"tags":["Certification"]}}},"info":{"title":"Authentication & Authorization OpenAPI Specification","description":"EPA development Environment: The content on this page is not production data and used for <strong>development</strong> and/or <strong>testing</strong> purposes only. <br> <br> Provides authentication, authorization, & security token services for CAMD applications","version":"v2.0.694 published: Wed Jul 29 2026","contact":{}},"tags":[],"servers":[{"url":"https://api.epa.gov/easey/dev"}],"components":{"securitySchemes":{"APIKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"API Key required via \"x-api-key\" request header!"},"Token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Authorization \"bearer\" token required for data modification operations"},"ClientToken":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Authorization \"bearer\" client JWT token required for api endpoints"},"ClientId":{"type":"apiKey","in":"header","name":"x-client-id","description":"ClientId required via \"x-client-id\" request header"}},"schemas":{"CredentialsDTO":{"type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]},"PolicyResponse":{"type":"object","properties":{}},"OidcAuthValidationRequestDto":{"type":"object","properties":{"code":{"type":"string"},"state":{"type":"string"},"error":{"type":"string"},"error_description":{"type":"string"}}},"SignInDTO":{"type":"object","properties":{"sessionId":{"type":"string"}},"required":["sessionId"]},"FacilityAccessDTO":{"type":"object","properties":{"facId":{"type":"number","description":"Facilitiy Id"},"orisCode":{"type":"number","description":"Oris Code"},"permissions":{"description":"List of associated permissions","type":"array","items":{"type":"string"}}},"required":["facId","orisCode","permissions"]},"UserDTO":{"type":"object","properties":{"userId":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"token":{"type":"string"},"tokenExpiration":{"type":"string"},"idToken":{"type":"string"},"refreshToken":{"type":"string"},"email":{"type":"string"},"facilities":{"type":"array","items":{"$ref":"#/components/schemas/FacilityAccessDTO"}},"missingCertificationStatements":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}}},"required":["userId","firstName","lastName","token","tokenExpiration","idToken","refreshToken","email","facilities","missingCertificationStatements","roles"]},"UserIdDTO":{"type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]},"LoginStateDTO":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"]},"TokenDTO":{"type":"object","properties":{"token":{"type":"string"},"expiration":{"type":"string"}},"required":["token","expiration"]},"MaintenanceVerifyParamDTO":{"type":"object","properties":{"authToken":{"type":"string"},"clientIp":{"type":"string"},"appIdentifier":{"type":"string"}},"required":["clientIp","appIdentifier"]},"ClientCredentialsDTO":{"type":"object","properties":{"clientId":{"type":"string"},"clientSecret":{"type":"string"}},"required":["clientId","clientSecret"]},"ClientIdDTO":{"type":"object","properties":{"clientId":{"type":"string"}},"required":["clientId"]},"FacilityAccessWithCertStatementFlagDTO":{"type":"object","properties":{"plantList":{"description":"List of faclities with associated permissions","type":"array","items":{"$ref":"#/components/schemas/FacilityAccessDTO"}},"missingCertificationStatements":{"type":"boolean","description":"missing unsigned certificate statements flag"},"hasValidEsa":{"type":"boolean","description":"flag indicating if user has valid CDX ESA status"}},"required":["plantList","missingCertificationStatements","hasValidEsa"]},"CredentialsSignDTO":{"type":"object","properties":{"userId":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"middleInitial":{"type":"string"},"activityDescription":{"type":"string"}},"required":["userId","firstName","lastName","middleInitial","activityDescription"]},"SignAuthResponseDTO":{"type":"object","properties":{"activityId":{"type":"string"},"documentIds":{"type":"array","items":{"type":"string"}},"code":{"type":"string"},"message":{"type":"string"}}},"ValidationItem":{"type":"object","properties":{"monPlanId":{"type":"string"},"submitMonPlan":{"type":"boolean"},"testSumIds":{"type":"array","items":{"type":"string"}},"qceIds":{"type":"array","items":{"type":"string"}},"teeIds":{"type":"array","items":{"type":"string"}},"emissionsReportingPeriods":{"type":"array","items":{"type":"string"}}},"required":["monPlanId","submitMonPlan","testSumIds","qceIds","teeIds","emissionsReportingPeriods"]},"SignValidateParamDTO":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ValidationItem"}},"userId":{"type":"string"}},"required":["items","userId"]},"SignValidateResponseDTO":{"type":"object","properties":{"hasValidationError":{"type":"boolean"},"validationErrorHeading":{"type":"string"},"validationErrorMessage":{"type":"string"}},"required":["hasValidationError"]},"CertificationStatementDTO":{"type":"object","properties":{"statementId":{"type":"number"},"statementText":{"type":"string"},"prgCode":{"type":"string"},"displayOrder":{"type":"number"},"facData":{"type":"object"}},"required":["statementId","statementText","prgCode","displayOrder","facData"]}}}}