openapi: 3.0.0
info:
description: The Eon.io REST API
title: Eon accounts iam API
version: 1.0.0
servers:
- url: /
security:
- ApiKeyAuth: []
tags:
- name: iam
paths:
/v1/permissions:
get:
description: 'Description: Retrieves a list of user permissions.'
operationId: listPermissions
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListPermissionsResponse'
description: Permissions retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Permissions
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
/v1/roles:
post:
description: 'Description: Creates a custom role.
When creating a role, you''ll specify a list of permissions and, optionally, data access conditions.
Data access conditions let you restrict the resources a permission is granted for.
For example, for a particular role, you can set data access conditions to allow access only to resources without PII.
'
operationId: createRole
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRoleRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRoleResponse'
description: Role created.
'400':
description: Validation error.
'409':
description: A role with the same name already exists.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Create Role
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- create:account_roles
x-audit-log:
action: create
entityRefs:
- entityType: role
in: resBody
key: id
/v1/roles/list:
post:
description: 'Description: Retrieves a list of user roles.'
operationId: listRoles
parameters:
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListRolesResponse'
description: Roles retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Roles
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
/v1/roles/{roleId}:
delete:
description: 'Description: Deletes a role.'
operationId: deleteRole
parameters:
- description: Role ID.
example: ceaf2281-bf04-542d-a801-a6a4865373ad
explode: false
in: path
name: roleId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'204':
description: Role deleted.
'404':
description: Role not found
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Delete Role
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- delete:account_roles
x-audit-log:
action: delete
entityRefs:
- entityType: role
in: path
key: roleId
get:
description: 'Description: Retrieves a role.'
operationId: getRole
parameters:
- description: Role ID.
example: daa42222-6ad2-5d37-bb26-4f2a9cba73da
explode: false
in: path
name: roleId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetRoleResponse'
description: Role retrieved.
'404':
description: Role wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Get Role
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
put:
description: 'Description: This API operation updates the details of a role using its unique ID. The request body must contain the updated role details.'
operationId: updateRole
parameters:
- description: ID of the role
explode: false
in: path
name: roleId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRoleRequest'
description: The request body for updating a user
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRoleResponse'
description: Role updated.
'404':
description: Role not found
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Update Role
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:account_roles
x-audit-log:
action: update
entityRefs:
- entityType: role
in: path
key: roleId
/v1/idps/list:
post:
description: 'Description: Retrieves a list of identity providers for the account.'
operationId: listIdps
parameters:
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListIdpsResponse'
description: Identity providers retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Identity Providers
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- read:idp_configs
x-audit-log:
excluded: true
/v1/idp-groups:
post:
description: 'Description: Maps an identity provider group to one or more Eon roles.
When users authenticate via SAML and belong to the specified group, they''re granted the assigned roles.
'
operationId: createIdpGroup
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateIdpGroupRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateIdpGroupResponse'
description: IdP group role assignment created.
'400':
description: Validation error.
'404':
description: Identity provider not found.
'409':
description: A group with the same provider-assigned group ID already exists for the specified identity provider.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Create IdP Group Role Assignment
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- admin:idp_groups
x-audit-log:
action: create
entityRefs:
- entityType: idp_group
in: resBody
key: group.id
/v1/idp-groups/list:
post:
description: 'Description: Retrieves a list of IdP group role assignments mapped in your Eon account.'
operationId: listIdpGroups
parameters:
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListIdpGroupsResponse'
description: IdP group role assignments retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List IdP Group Role Assignments
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- admin:idp_groups
x-audit-log:
excluded: true
/v1/idp-groups/{groupId}:
delete:
description: 'Description: Deletes an IdP group role assignment.
After deletion, users are no longer assigned roles from their membership in the specified group.
'
operationId: deleteIdpGroup
parameters:
- description: Eon-assigned IdP group role assignment ID.
example: ceaf2281-bf04-542d-a801-a6a4865373ad
explode: false
in: path
name: groupId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'204':
description: IdP group role assignment deleted.
'404':
description: IdP group role assignment wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Delete IdP Group Role Assignment
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- admin:idp_groups
x-audit-log:
action: delete
entityRefs:
- entityType: idp_group
in: path
key: groupId
get:
description: 'Description: Retrieves an IdP group role assignment by ID.'
operationId: getIdpGroup
parameters:
- description: Eon-assigned IdP group role assignment ID.
example: daa42222-6ad2-5d37-bb26-4f2a9cba73da
explode: false
in: path
name: groupId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetIdpGroupResponse'
description: IdP group role assignment retrieved.
'404':
description: IdP group role assignment wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Get IdP Group Role Assignment
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- admin:idp_groups
x-audit-log:
excluded: true
put:
description: 'Description: Updates the roles assigned to an IdP group.
This operation replaces all existing role assignments with the provided list.
To add a role, include all existing roles plus the new one.
To remove a role, include all roles except the one to remove.
'
operationId: updateIdpGroup
parameters:
- description: Eon-assigned IdP group role assignment ID.
explode: false
in: path
name: groupId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateIdpGroupRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateIdpGroupResponse'
description: IdP group role assignment updated.
'404':
description: IdP group role assignment wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Update IdP Group Role Assignment
tags:
- iam
x-internal: false
x-data-access:
excluded: true
x-permissions:
- admin:idp_groups
x-audit-log:
action: update
entityRefs:
- entityType: idp_group
in: path
key: groupId
components:
schemas:
AccountIdCondition:
example:
accountIds:
- accountIds
- accountIds
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
accountIds:
items:
type: string
type: array
required:
- accountIds
- operator
type: object
TagKeyValuesCondition:
example:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
nullable: true
properties:
operator:
$ref: '#/components/schemas/ListOperators'
tagKeyValues:
items:
$ref: '#/components/schemas/TagKeyValue'
type: array
required:
- operator
- tagKeyValues
type: object
ListIdpGroupsResponse:
example:
nextToken: Y2NiMGYyZmMtYjYyZi00OTc5LTgzNjQtYmQ2YjEyYzdjZTNifDE=
groups:
- roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
- roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
totalCount: 0
properties:
groups:
description: List of IdP group role assignments.
items:
$ref: '#/components/schemas/IdpGroup'
type: array
totalCount:
description: Total number of IdP group role assignments.
type: integer
nextToken:
description: 'Cursor that points to the first record of the next page of results.
Pass this value in the next request.
'
example: Y2NiMGYyZmMtYjYyZi00OTc5LTgzNjQtYmQ2YjEyYzdjZTNifDE=
type: string
required:
- groups
type: object
Provider:
description: 'Cloud provider.
`PROVIDER_UNSPECIFIED` is supported only in responses.
'
enum:
- AWS
- AZURE
- GCP
- MONGO_ATLAS
- GOOGLE_WORKSPACE
- MICROSOFT_365
- PROVIDER_UNSPECIFIED
example: AWS
type: string
x-docs-internal-enum:
- GOOGLE_WORKSPACE
- MICROSOFT_365
EnvironmentCondition:
example:
environments:
- PROD
- PROD
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
environments:
items:
$ref: '#/components/schemas/Environment'
type: array
required:
- environments
- operator
type: object
ResourceNameCondition:
example:
resourceNames:
- resourceNames
- resourceNames
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
resourceNames:
items:
type: string
type: array
required:
- operator
- resourceNames
type: object
UpdateIdpGroupResponse:
example:
group:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
group:
$ref: '#/components/schemas/IdpGroup'
required:
- group
type: object
TagKeysCondition:
example:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
nullable: true
properties:
operator:
$ref: '#/components/schemas/ListOperators'
tagKeys:
items:
type: string
type: array
required:
- operator
- tagKeys
type: object
ListRolesResponse:
example:
nextToken: Y2NiMGYyZmMtYjYyZi00OTc5LTgzNjQtYmQ2YjEyYzdjZTNifDE=
roles:
- restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
- restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
totalCount: 0
properties:
roles:
items:
$ref: '#/components/schemas/Role'
type: array
totalCount:
description: Total number of roles.
type: integer
nextToken:
description: 'Cursor that points to the first record of the next page of results.
Pass this value in the next request.
'
example: Y2NiMGYyZmMtYjYyZi00OTc5LTgzNjQtYmQ2YjEyYzdjZTNifDE=
type: string
required:
- roles
type: object
GetRoleResponse:
example:
role:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
role:
$ref: '#/components/schemas/Role'
required:
- role
type: object
AccessConditionalExpression:
description: 'Conditional expression to evaluate to determine which resources are accessible.
Only one of the expressions below can be used.
For multiple conditions using `AND` or `OR` logic, group expressions with `group`.
You can nest multiple groups to create more complex expressions.
'
example:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
nullable: true
properties:
group:
$ref: '#/components/schemas/RoleAccessGroupCondition'
resourceType:
$ref: '#/components/schemas/ResourceTypeCondition'
dataClasses:
$ref: '#/components/schemas/DataClassesCondition'
environment:
$ref: '#/components/schemas/EnvironmentCondition'
apps:
$ref: '#/components/schemas/AppsCondition'
cloudProvider:
$ref: '#/components/schemas/CloudProviderCondition'
accountId:
$ref: '#/components/schemas/AccountIdCondition'
sourceRegion:
$ref: '#/components/schemas/RegionCondition'
vpc:
$ref: '#/components/schemas/VpcCondition'
subnets:
$ref: '#/components/schemas/SubnetsCondition'
resourceGroupName:
$ref: '#/components/schemas/ResourceGroupNameCondition'
resourceName:
$ref: '#/components/schemas/ResourceNameCondition'
resourceId:
$ref: '#/components/schemas/ResourceIdCondition'
tagKeys:
$ref: '#/components/schemas/TagKeysCondition'
tagKeyValues:
$ref: '#/components/schemas/TagKeyValuesCondition'
type: object
UpdateIdpGroupRequest:
example:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 6ba7b810-9dad-11d1-80b4-00c04fd430c8
displayName: Engineering Team
properties:
roleIds:
description: 'List of [role IDs](../roles/list-roles) to assign to the group.
This replaces all existing role assignments.
'
example:
- 550e8400-e29b-41d4-a716-446655440000
- 6ba7b810-9dad-11d1-80b4-00c04fd430c8
items:
format: uuid
type: string
type: array
displayName:
description: 'Optional human-readable label for the group mapping. For display and management only;
it is not used when matching SAML groups during sign-on.
Omit (or send null) to leave the existing label unchanged; send an empty string to clear it.
'
example: Engineering Team
nullable: true
type: string
x-nullable: true
required:
- roleIds
type: object
ListOperators:
description: 'Evaluates whether the original list constains any, all, or none of the values in this list.
`UNSPECIFIED` is supported only in responses.
'
enum:
- CONTAINS_ANY_OF
- CONTAINS_NONE_OF
- CONTAINS_ALL_OF
- UNSPECIFIED
example: CONTAINS_ANY_OF
type: string
x-enum-varnames:
- CONTAINS_ANY_OF_OPERATOR
- CONTAINS_NONE_OF_OPERATOR
- CONTAINS_ALL_OF_OPERATOR
- LIST_OPERATOR_UNSPECIFIED
VpcCondition:
example:
vpcs:
- vpcs
- vpcs
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
vpcs:
items:
type: string
type: array
required:
- operator
- vpcs
type: object
RestoreDestinationLimits:
description: 'Limits the restore accounts that can be used as restore destinations for operations granted by the role.
'
example:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
nullable: true
properties:
effect:
$ref: '#/components/schemas/AccessConditionEffect'
restoreAccountProviderIds:
description: 'List of cloud-provider-assigned restore account IDs to match against.
'
items:
type: string
minItems: 1
type: array
required:
- effect
- restoreAccountProviderIds
type: object
x-internal: false
LogicalOperator:
description: 'Logical operator to apply to the list of `operands`.
`UNSPECIFIED` is supported only in responses.
'
enum:
- AND
- OR
- UNSPECIFIED
example: AND
type: string
x-enum-varnames:
- AND_OPERATOR
- OR_OPERATOR
- LOGICAL_OPERATOR_UNSPECIFIED
CreateIdpGroupResponse:
example:
group:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
group:
$ref: '#/components/schemas/IdpGroup'
required:
- group
type: object
AccessConditionEffect:
description: 'Whether the data access condition is an allowlist or blocklist.
'
enum:
- INCLUSIVE
- EXCLUSIVE
example: INCLUSIVE
type: string
x-enum-varnames:
- RULE_EFFECT_INCLUSIVE
- RULE_EFFECT_EXCLUSIVE
x-fern-enum:
INCLUSIVE:
description: 'The permission is granted only to the resources that match the conditions.
All other resources are excluded from the permission.
'
EXCLUSIVE:
description: 'The permission is granted to all resources except those that match the conditions.
'
Permission:
example:
permissionType: inventory.view
allowConditions: false
description: Can view resource details in the inventory.
properties:
permissionType:
$ref: '#/components/schemas/PermissionType'
description:
description: Description of the actions the permission allows.
example: Can view resource details in the inventory.
type: string
allowConditions:
default: false
description: 'Whether the permission can be restricted with access conditions.
Relevant when the permission is used in a user role.
'
type: boolean
required:
- allowConditions
- category
- description
- name
- permissionType
type: object
DataClassesCondition:
example:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
nullable: true
properties:
operator:
$ref: '#/components/schemas/ListOperators'
dataClasses:
items:
$ref: '#/components/schemas/DataClass'
type: array
required:
- dataClasses
- operator
type: object
Environment:
description: 'The resource''s environment: production, internal production, or staging.
`ENVIRONMENT_UNSPECIFIED` is supported only in responses.
'
enum:
- PROD
- PROD_INTERNAL
- STAGE
- ENVIRONMENT_UNSPECIFIED
example: PROD
type: string
CreateRoleRequest:
example:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
name: name
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
properties:
name:
description: 'Role display name.
Must be unique in your Eon account.
'
type: string
permissionGrants:
description: Permissions granted by the role.
items:
$ref: '#/components/schemas/PermissionGrantInput'
type: array
accessConditions:
description: 'If present, the ID of the set of access conditions that restrict the resources the permission is granted for.
The ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.
If omitted, the permission is granted for all resources.
'
items:
$ref: '#/components/schemas/AccessCondition'
type: array
restoreDestinationLimits:
$ref: '#/components/schemas/RestoreDestinationLimits'
sameSourceAccountRestoreLimits:
$ref: '#/components/schemas/SameSourceAccountRestoreLimits'
required:
- name
- permissionGrants
type: object
ScalarOperators:
description: 'Evaluates whether the value is in the list.
`UNSPECIFIED` is supported only in responses.
'
enum:
- IN
- NOT_IN
- UNSPECIFIED
example: IN
type: string
x-enum-varnames:
- IN_OPERATOR
- NOT_IN_OPERATOR
- SCALAR_OPERATOR_UNSPECIFIED
Error:
example:
error: error
properties:
error:
type: string
type: object
TagKeyValue:
example:
value: value
key: key
properties:
key:
type: string
value:
type: string
required:
- key
type: object
SubnetsCondition:
example:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
nullable: true
properties:
operator:
$ref: '#/components/schemas/ListOperators'
subnets:
items:
type: string
type: array
required:
- operator
- subnets
type: object
Role:
description: Role.
example:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
id:
description: Role ID.
example: daa42222-6ad2-5d37-bb26-4f2a9cba73da
format: uuid
type: string
name:
description: Role display name.
example: My custom role
type: string
isBuiltInRole:
description: 'Whether the role is a default role.
If `true`, the role is a default role provided by Eon and can''t be modified or deleted.
If `false`, the role is a custom, user-created role.
'
example: false
type: boolean
permissionGrants:
description: List of permissions granted by the role.
items:
$ref: '#/components/schemas/PermissionGrant'
type: array
accessConditions:
description: 'Sets of access conditions that restrict the resources a permission is granted for.
IDs are set by you and are applied to the relevant permission in `permissionGrants`.
An access condition can be applied to more than one permission grant.
'
items:
$ref: '#/components/schemas/AccessCondition'
type: array
restoreDestinationLimits:
$ref: '#/components/schemas/RestoreDestinationLimits'
sameSourceAccountRestoreLimits:
$ref: '#/components/schemas/SameSourceAccountRestoreLimits'
required:
- id
- isBuiltInRole
- name
- permissionGrants
- scopes
type: object
ResourceTypeCondition:
example:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
resourceTypes:
description: 'Resource types to evaluate.
`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
'
items:
$ref: '#/components/schemas/ResourceType'
type: array
required:
- operator
- resourceTypes
type: object
UpdateRoleRequest:
example:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
name: name
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
properties:
name:
description: The name of the role
type: string
permissionGrants:
description: The permissions of the role
items:
$ref: '#/components/schemas/PermissionGrantInput'
type: array
accessConditions:
description: The condition of the role, keyed by name
items:
$ref: '#/components/schemas/AccessCondition'
type: array
restoreDestinationLimits:
$ref: '#/components/schemas/RestoreDestinationLimits'
sameSourceAccountRestoreLimits:
$ref: '#/components/schemas/SameSourceAccountRestoreLimits'
required:
- name
- permissionGrants
type: object
ListIdpsResponse:
example:
nextToken: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
totalCount: 5
idps:
- id: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
providerName: okta-prod
- id: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
providerName: okta-prod
properties:
idps:
description: List of identity providers.
items:
$ref: '#/components/schemas/Idp'
type: array
totalCount:
description: Total number of identity providers.
example: 5
type: integer
nextToken:
description: 'Cursor that points to the first record of the next page of results.
Pass this value in the next request.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
type: string
required:
- idps
- totalCount
type: object
SameSourceAccountRestoreLimits:
description: 'Restricts restores so a resource may only be restored back to its original source cloud account,
matched on the cloud-provider account ID (not the Eon account ID). When `dataAccessRuleId` is set
the restriction applies only to resources matching that access condition; otherwise it applies to
all resources granted by the role.
'
example:
dataAccessRuleId: dataAccessRuleId
enabled: true
nullable: true
properties:
enabled:
description: Whether the same-source-account restore restriction is active.
type: boolean
dataAccessRuleId:
description: 'Optional. The id of an access condition (an entry in `accessConditions`) that scopes which
resources the restriction applies to. Omit to apply the restriction to all resources.
'
type: string
required:
- enabled
type: object
x-internal: false
RegionCondition:
example:
regions:
- regions
- regions
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
regions:
items:
type: string
type: array
required:
- operator
- regions
type: object
PermissionType:
description: User permission.
enum:
- permission_id_unspecified
- global_settings.view
- vault_accounts.manage
- cost_explorer.view
- user_access.manage
- saml_group_access.manage
- api_credentials.manage
- api_credentials.rotate_secret
- custom_roles.manage
- dashboard.view
- inventory.view
- jobs.view
- audit_logs.view
- backup_settings.view
- storage_gateway.view
- database_explorer.search
- file_explorer.search
- snapshots.take_or_convert
- resources.restore
- configuration.validate
- files.restore
- databases.query
- data_classes.override
- environments.override
- detected_apps.override
- network_classification.override
- control_violations.mute
- backup_exclusion.manage
- vaults.manage
- source_accounts.manage
- restore_accounts.manage
- backup_policies.manage
- discovery_configuration.manage
- backup_configuration.manage
- controls.manage
- ransomware_detection.manage
- notification_policies.manage
- storage_gateway.manage
- oauth_apps.manage
- zero_etl_policies.manage
- action_approval_rules.manage
- action_approval_rules.view
- action_approval_requests.manage
- mpa_policies.manage
- mpa_policies.view
- mpa_requests.manage
- restore_templates.manage
- datalake.view
- datalake.operate
- compliance.view
- classification_policies.manage
example: inventory.view
type: string
x-docs-internal-enum:
- zero_etl_policies.manage
- action_approval_rules.manage
- action_approval_rules.view
- action_approval_requests.manage
- mpa_policies.manage
- mpa_policies.view
- mpa_requests.manage
- restore_templates.manage
- datalake.view
- datalake.operate
- compliance.view
- classification_policies.manage
IdpGroup:
description: IdP group role assignment.
example:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
id:
description: Eon-assigned group ID.
example: daa42222-6ad2-5d37-bb26-4f2a9cba73da
format: uuid
type: string
idpId:
description: '[ID of the identity provider](./list-idps) the group belongs to.
'
example: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
format: uuid
type: string
providerGroupId:
description: 'Identity-provider-assigned group ID.
Must match the exact group ID passed by the identity provider to Eon during SAML sign-on.
'
example: engineering-team
type: string
roleIds:
description: List of [role IDs](../roles/list-roles) assigned to the group.
example:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
items:
format: uuid
type: string
type: array
displayName:
description: 'Optional human-readable label for the group mapping. For display and management only;
it is not used when matching SAML groups during sign-on.
'
example: Engineering Team
type: string
required:
- id
- idpId
- providerGroupId
- roleIds
type: object
DataClass:
description: 'Data classes.
Allowed values: `FI`, `PHI`, `PII`
'
example: PII
type: string
CloudProviderCondition:
example:
cloudProviders:
- AWS
- AWS
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
cloudProviders:
items:
$ref: '#/components/schemas/Provider'
type: array
required:
- cloudProviders
- operator
type: object
ResourceType:
description: 'Resource type identifier combining cloud provider and service type.
`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
'
enum:
- AWS_EC2
- AWS_RDS
- AWS_S3
- AWS_EFS
- AWS_FSX
- AWS_EKS_NAMESPACE
- AWS_DYNAMO_DB
- AWS_EBS_VOLUME
- AWS_KEYSPACES_TABLE
- AWS_CASSANDRA_CLUSTER
- AWS_DOCUMENTDB
- AWS_NEPTUNE
- AZURE_VIRTUAL_MACHINE
- AZURE_FILE_SHARE
- AZURE_STORAGE_ACCOUNT
- AZURE_DISK
- AZURE_SQL_DATABASE
- AZURE_SQL_MANAGED_INSTANCE
- AZURE_SQL_VIRTUAL_MACHINE
- AZURE_SAP_HANA_VM
- AZURE_MYSQL
- AZURE_POSTGRESQL
- AZURE_COSMOSDB_MONGODB
- AZURE_COSMOSDB_NOSQL
- AZURE_AKS_NAMESPACE
- AZURE_CASSANDRA_CLUSTER
- ATLAS_MONGODB_CLUSTER
- GCP_COMPUTE_ENGINE_INSTANCE
- GCP_CLOUD_SQL_INSTANCE
- GCP_CLOUD_STORAGE_BUCKET
- GCP_GKE_NAMESPACE
- GCP_BIG_QUERY
- GCP_CLOUD_FIRESTORE
- GCP_DISK
- GCP_SAP_HANA_VM
- GCP_CASSANDRA_CLUSTER
- GOOGLE_WORKSPACE_RESOURCE
- MICROSOFT_365_RESOURCE
- RESOURCE_TYPE_UNSPECIFIED
example: AWS_EC2
type: string
x-docs-internal-enum:
- AWS_EBS_VOLUME
- AWS_KEYSPACES_TABLE
- AWS_CASSANDRA_CLUSTER
- GCP_CASSANDRA_CLUSTER
- AZURE_CASSANDRA_CLUSTER
- AWS_DOCUMENTDB
- AWS_NEPTUNE
- AZURE_SAP_HANA_VM
- AZURE_AKS_NAMESPACE
- GCP_GKE_NAMESPACE
- GCP_BIG_QUERY
- GCP_CLOUD_FIRESTORE
- GCP_DISK
- GCP_SAP_HANA_VM
- GOOGLE_WORKSPACE_RESOURCE
- MICROSOFT_365_RESOURCE
RoleAccessGroupCondition:
description: 'Group of expressions to evaluate using the logical operator specified in `operator`.
Each item in the `operands` list can be either a single expression or a nested `group` expression.
'
example:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
nullable: true
properties:
operator:
$ref: '#/components/schemas/LogicalOperator'
operands:
description: 'List of expressions to evaluate using the logical operator specified in `operator`.
Each item in the list can be either a single expression or a nested `group` expression.
Must contain at least 2 items.
'
example:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
items:
$ref: '#/components/schemas/AccessConditionalExpression'
minItems: 2
type: array
required:
- operands
- operator
type: object
Idp:
description: Identity provider.
example:
id: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
providerName: okta-prod
properties:
id:
description: Eon-assigned identity provider ID.
example: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
format: uuid
type: string
providerName:
description: Identity provider display name.
example: okta-prod
type: string
required:
- id
- providerName
type: object
GetIdpGroupResponse:
example:
group:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
group:
$ref: '#/components/schemas/IdpGroup'
required:
- group
type: object
ResourceGroupNameCondition:
example:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
resourceGroupNames:
items:
type: string
type: array
required:
- operator
- resourceGroupNames
type: object
CreateIdpGroupRequest:
example:
roleIds:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
providerGroupId: engineering-team
idpId: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
displayName: Engineering Team
properties:
idpId:
description: '[ID of the identity provider](./list-idps) the group belongs to.'
example: 8f14e45f-ceea-467f-a8dc-e5e47d61e5d7
format: uuid
type: string
providerGroupId:
description: 'Identity-provider-assigned group ID.
Must match the exact group ID passed by the identity provider to Eon during SAML sign-on.
'
example: engineering-team
type: string
roleIds:
description: List of [role IDs](../roles/list-roles) to assign to the group.
example:
- 550e8400-e29b-41d4-a716-446655440000
- 72bc42a0-e169-533f-b95a-4a434574756b
items:
format: uuid
type: string
type: array
displayName:
description: 'Optional human-readable label for the group mapping. For display and management only;
it is not used when matching SAML groups during sign-on.
'
example: Engineering Team
nullable: true
type: string
x-nullable: true
required:
- idpId
- providerGroupId
- roleIds
type: object
CreateRoleResponse:
example:
role:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
role:
$ref: '#/components/schemas/Role'
required:
- role
type: object
UpdateRoleResponse:
example:
role:
restoreDestinationLimits:
effect: INCLUSIVE
restoreAccountProviderIds:
- restoreAccountProviderIds
- restoreAccountProviderIds
permissionGrants:
- accessConditionId: Non-PII only.
permission: inventory.view
- accessConditionId: Non-PII only.
permission: inventory.view
sameSourceAccountRestoreLimits:
dataAccessRuleId: dataAccessRuleId
enabled: true
isBuiltInRole: false
name: My custom role
accessConditions:
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
- expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
id: daa42222-6ad2-5d37-bb26-4f2a9cba73da
properties:
role:
$ref: '#/components/schemas/Role'
required:
- role
type: object
ResourceIdCondition:
example:
operator: IN
resourceIds:
- resourceIds
- resourceIds
nullable: true
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
resourceIds:
items:
type: string
type: array
required:
- operator
- resourceIds
type: object
AccessCondition:
example:
expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
effect: INCLUSIVE
id: Non-PII only
properties:
id:
description: 'Display name for the data access rule, which also serves as its ID for use in `permissionGrants`.
Valid characters: `[a-zA-Z0-9-_.\s]`.
'
example: Non-PII only
type: string
effect:
$ref: '#/components/schemas/AccessConditionEffect'
expression:
$ref: '#/components/schemas/AccessConditionalExpression'
required:
- effect
- expression
- id
type: object
PermissionGrant:
example:
accessConditionId: Non-PII only.
permission: inventory.view
properties:
permission:
$ref: '#/components/schemas/PermissionType'
accessConditionId:
description: 'If present, the ID of the set of access conditions that restrict the resources the permission is granted for.
The ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.
If omitted, the permission is granted for all resources.
'
example: Non-PII only.
type: string
required:
- permission
type: object
ListPermissionsResponse:
example:
permissions:
- permissionType: inventory.view
allowConditions: false
description: Can view resource details in the inventory.
- permissionType: inventory.view
allowConditions: false
description: Can view resource details in the inventory.
properties:
permissions:
description: List of available user permissions.
items:
$ref: '#/components/schemas/Permission'
type: array
required:
- permissions
type: object
PermissionGrantInput:
example:
accessConditionId: Non-PII only.
permission: inventory.view
properties:
permission:
$ref: '#/components/schemas/PermissionType'
accessConditionId:
description: 'If present, the ID of the set of access conditions that restrict the resources the permission is granted for.
The ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.
If omitted, the permission is granted for all resources.
'
example: Non-PII only.
type: string
required:
- permission
type: object
AppsCondition:
example:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
nullable: true
properties:
operator:
$ref: '#/components/schemas/ListOperators'
apps:
items:
type: string
type: array
required:
- apps
- operator
type: object
securitySchemes:
ApiKeyAuth:
bearerFormat: JWT
scheme: bearer
type: http