Oneschema AWS Secrets Manager Accounts API
Manage AWS Secrets Manager account connections
Manage AWS Secrets Manager account connections
openapi: 3.1.0
info:
title: OneSchema AWS Secrets Manager AWS Secrets Manager Accounts API
version: '1'
description: Configure AWS Secrets Manager account connections and managed secret references for use in Multi FileFeeds.
contact:
name: OneSchema Support
email: support@oneschema.co
termsOfService: https://www.oneschema.co/terms-and-conditions
license:
name: proprietary
url: https://www.oneschema.co/terms-and-conditions
servers:
- url: https://api.oneschema.co
description: Production server (hosted in the US)
- url: https://api.eu.oneschema.co
description: Production server (hosted in the EU)
- url: https://api.ca.oneschema.co
description: Production server (hosted in Canada)
- url: https://api.au.oneschema.co
description: Production server (hosted in Australia)
security:
- ApiKeyAuth: []
tags:
- name: AWS Secrets Manager Accounts
description: Manage AWS Secrets Manager account connections
paths:
/v0/aws-secrets-manager/accounts:
post:
operationId: create-aws-secrets-manager-account
summary: Create AWS Secrets Manager Account
description: Create a new AWS Secrets Manager account connection for the organization.
parameters: []
responses:
'201':
description: Account created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/aws-secrets-manager-account-resource'
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/aws-secrets-manager-account-post-request'
get:
operationId: list-aws-secrets-manager-accounts
summary: List AWS Secrets Manager Accounts
description: Returns a list of AWS Secrets Manager account connections for the organization.
parameters: []
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/aws-secrets-manager-account-resource'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
/v0/aws-secrets-manager/accounts/{account-id}:
delete:
operationId: delete-aws-secrets-manager-account
summary: Delete AWS Secrets Manager Account
description: Delete a specific AWS Secrets Manager account connection. The account cannot be deleted while it has managed secrets attached.
parameters:
- name: account-id
in: path
required: true
description: The ID of the AWS Secrets Manager account
schema:
type: integer
responses:
'200':
description: Successful response. The primary way to verify the request's success or failure is the response status code. In a future API version this endpoint may not return any response body at all.
content:
application/json:
schema:
$ref: '#/components/schemas/empty-response'
'400':
description: Cannot delete account with managed secrets
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
get:
operationId: get-aws-secrets-manager-account
summary: Get AWS Secrets Manager Account
description: Get a specific AWS Secrets Manager account connection.
parameters:
- name: account-id
in: path
required: true
description: The ID of the AWS Secrets Manager account
schema:
type: integer
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/aws-secrets-manager-account-resource'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
patch:
operationId: update-aws-secrets-manager-account
summary: Update AWS Secrets Manager Account
description: Update a specific AWS Secrets Manager account connection.
parameters:
- name: account-id
in: path
required: true
description: The ID of the AWS Secrets Manager account
schema:
type: integer
responses:
'200':
description: The request has succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/aws-secrets-manager-account-resource'
'400':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/aws-secrets-manager-account-patch-request'
/v0/aws-secrets-manager/accounts/{account-id}/test:
post:
operationId: test-aws-secrets-manager-account
summary: Test AWS Secrets Manager Connection
description: Test that OneSchema can authenticate via the configured IAM role and retrieve a specific secret. The secret value is not returned.
parameters:
- name: account-id
in: path
required: true
description: The ID of the AWS Secrets Manager account
schema:
type: integer
responses:
'200':
description: Test result (check the `success` field)
content:
application/json:
schema:
$ref: '#/components/schemas/test-connection-response'
'401':
description: Unauthorized (missing or invalid API key)
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
tags:
- AWS Secrets Manager Accounts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/aws-test-connection-request'
components:
schemas:
error-response:
type: object
required:
- message
properties:
code:
type: string
description: A machine-readable error code
param:
type: string
description: The parameter that caused the error
message:
type: string
description: A human-readable error message
data:
type: object
description: Additional error context
test-connection-response:
type: object
properties:
success:
type: boolean
error_code:
type: string
description: Present when success is false
error_category:
type: string
enum:
- account
- secret
- provider
description: Broad classification of the failure. "account" means the account credentials or permissions are wrong; "secret" means the secret identifier or version could not be found; "provider" means a transient infrastructure issue. Present when success is false.
error_message:
type: string
description: Present when success is false
request_id:
type: string
transaction_id:
type: string
aws-secrets-manager-account-base:
type: object
properties:
name:
type: string
description: The name of the AWS Secrets Manager account connection
role_arn:
type: string
description: The IAM role ARN used for cross-account access via STS AssumeRole
external_id:
type: string
description: Optional external ID for secure cross-account role assumption
description:
anyOf:
- type: string
- type: 'null'
description: An optional description of the account connection
aws-test-connection-request:
type: object
required:
- secret_identifier
- region
properties:
secret_identifier:
type: string
description: The identifier of the secret to test retrieval for
region:
type: string
description: The AWS region where the secret is stored
secret_version:
anyOf:
- type: string
- type: 'null'
description: A specific version ID or stage label
version_kind:
type: string
enum:
- id
- stage
description: Selects whether secret_version is treated as a VersionId or VersionStage for AWS GetSecretValue
aws-secrets-manager-account-patch-request:
type: object
properties:
name:
type: string
description: The name of the AWS Secrets Manager account connection
description:
anyOf:
- type: string
- type: 'null'
description: An optional description of the account connection
role_arn:
type: string
description: The IAM role ARN used for cross-account access
external_id:
type: string
description: The external ID used for secure cross-account role assumption
aws-secrets-manager-account-post-request:
type: object
required:
- name
- role_arn
properties:
name:
type: string
description: The name of the AWS Secrets Manager account connection
role_arn:
type: string
description: The IAM role ARN used for cross-account access via STS AssumeRole
allOf:
- $ref: '#/components/schemas/aws-secrets-manager-account-base'
empty-response:
type: object
additionalProperties: false
aws-secrets-manager-account-resource:
type: object
properties:
id:
type: integer
description: The unique identifier of the account connection
name:
type: string
description: The name of the account connection
description:
anyOf:
- type: string
- type: 'null'
description: An optional description
role_arn:
type: string
description: The IAM role ARN used for cross-account access
has_external_id:
type: boolean
description: Whether an external ID is configured (value never exposed)
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY