mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-10 07:12:20 -05:00
444 lines
11 KiB
YAML
444 lines
11 KiB
YAML
openapi: '3.0.2'
|
|
info:
|
|
title: Notify API
|
|
version: '1.0'
|
|
servers:
|
|
- url: https://notify-api.app.cloud.gov
|
|
description: Production API endpoint
|
|
- url: https://notify-api-staging.app.cloud.gov
|
|
description: Staging API endpoint
|
|
- url: http://localhost:6011
|
|
description: Local development API endpoint
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
parameters:
|
|
uuidPath:
|
|
name: uuid
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
schemas:
|
|
serviceObject:
|
|
type: object
|
|
properties:
|
|
active:
|
|
type: boolean
|
|
billing_contact_email_addresses:
|
|
type: string
|
|
billing_contact_names:
|
|
type: string
|
|
billing_reference:
|
|
type: string
|
|
consent_to_research:
|
|
type: string
|
|
contact_link:
|
|
type: string
|
|
count_as_live:
|
|
type: boolean
|
|
created_by:
|
|
type: string
|
|
email_branding:
|
|
type: string
|
|
email_from:
|
|
type: string
|
|
go_live_at:
|
|
type: string
|
|
go_live_user:
|
|
type: string
|
|
id:
|
|
type: string
|
|
inbound_api:
|
|
type: array
|
|
letter_branding:
|
|
type: string
|
|
message_limit:
|
|
type: number
|
|
name:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
organisation:
|
|
type: string
|
|
organisation_type:
|
|
type: string
|
|
enum: ["federal", "state", "other"]
|
|
default: "federal"
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
prefix_sms:
|
|
type: boolean
|
|
purchase_order_number:
|
|
type: string
|
|
rate_limit:
|
|
type: number
|
|
research_model:
|
|
type: boolean
|
|
restricted:
|
|
type: boolean
|
|
service_callback_api:
|
|
type: array
|
|
volume_email:
|
|
type: string
|
|
volume_letter:
|
|
type: string
|
|
volume_sms:
|
|
type: string
|
|
userObject:
|
|
type: object
|
|
properties:
|
|
auth_type:
|
|
type: string
|
|
can_use_webauthn:
|
|
type: string
|
|
current_session_id:
|
|
type: string
|
|
email_access_validated_at:
|
|
type: string
|
|
email_address:
|
|
type: string
|
|
failed_login_count:
|
|
type: number
|
|
id:
|
|
type: string
|
|
logged_in_at:
|
|
type: string
|
|
mobile_number:
|
|
type: string
|
|
name:
|
|
type: string
|
|
organisations:
|
|
type: array
|
|
items:
|
|
type: string
|
|
password_changed_at:
|
|
type: string
|
|
permissions:
|
|
type: object
|
|
properties:
|
|
SERVICE_ID:
|
|
type: array
|
|
items:
|
|
type: string
|
|
platform_admin:
|
|
type: boolean
|
|
services:
|
|
type: array
|
|
items:
|
|
type: string
|
|
state:
|
|
type: string
|
|
enum: ["pending", "active", "inactive"]
|
|
apiKeyResponse:
|
|
type: object
|
|
properties:
|
|
apiKeys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
expiry_date:
|
|
type: string
|
|
id:
|
|
type: string
|
|
key_type:
|
|
type: string
|
|
name:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
version:
|
|
type: number
|
|
paths:
|
|
/_status?simple=1:
|
|
get:
|
|
description: 'Retrieve only an acknowledgement that the server is listening'
|
|
tags:
|
|
- public
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: ["ok"]
|
|
/_status:
|
|
get:
|
|
description: 'Retrieve information on the status of the Notify API server'
|
|
tags:
|
|
- public
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
build_time:
|
|
type: string
|
|
db_version:
|
|
type: string
|
|
git_commit:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum: ["ok"]
|
|
/_status/live-service-and-organisation-counts:
|
|
get:
|
|
description: 'Retrieve a count of live services and organizations in the Notify system'
|
|
tags:
|
|
- public
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
services:
|
|
type: number
|
|
organisations:
|
|
type: number
|
|
/user:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve list of all users'
|
|
tags:
|
|
- internal-api
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/userObject"
|
|
/user/{uuid}:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve single user details'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/userObject"
|
|
/organisations:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve organization details'
|
|
tags:
|
|
- internal-api
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
active:
|
|
type: boolean
|
|
count_of_live_services:
|
|
type: number
|
|
domains:
|
|
type: array
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
organisation_type:
|
|
type: string
|
|
enum: ["federal", "state", "other"]
|
|
/service:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve all services'
|
|
tags:
|
|
- internal-api
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/serviceObject"
|
|
/service/find-services-by-name:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Find a service by name'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- name: service_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
active:
|
|
type: boolean
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
research_mode:
|
|
type: boolean
|
|
restricted:
|
|
type: boolean
|
|
/service/live-services-data:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Unsure'
|
|
tags:
|
|
- internal-api
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
/service/{uuid}:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve details of a single service'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/serviceObject"
|
|
/service/{uuid}/statistics:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve statistics about messages sent by a service'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/service/{uuid}/api-keys:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve api-keys for a service'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/apiKeyResponse"
|
|
/service/{uuid}/api-keys/{key-id}:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve details of a single API key'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
- name: key-id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/apiKeyResponse"
|
|
/service/{uuid}/users:
|
|
get:
|
|
security:
|
|
- bearerAuth: []
|
|
description: 'Retrieve users associated with this service'
|
|
tags:
|
|
- internal-api
|
|
parameters:
|
|
- $ref: "#/components/parameters/uuidPath"
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/userObject"
|