{"openapi":"3.1.0","info":{"title":"API Reference","version":"1.0.0"},"paths":{"/v1/token":{"post":{"operationId":"auth_getAccessToken","summary":"Get Access Token","description":"Retrieves an access token, which you then pass in the `Authorization` header when calling API methods.\n\nThe client ID and secret you provide when calling this method must be from a set of API credentials from your Eon account.\nTo learn more about creating API credentials and completing the authentication flow, see [Authentication](/api/using-the-api/authentication).\n\nThe returned access token has the permissions included in the role you assigned to the API credentials.\nAlways make sure the API credentials have the permissions needed for the API methods you want to use it for.\n\nThe access token is valid for 12 hours.\nAfter that, you must call this method again to get a new token.\n","tags":["Auth"],"responses":{"200":{"description":"Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"404":{"description":"API credentials not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCredentials"}}}}}},"/v1/oauth2/token":{"post":{"operationId":"auth_getAccessTokenOAuth2","summary":"Get Access Token (OAuth 2)","description":"Retrieves an access token using an OAuth-2.0-compliant flow.\nAccepts form-encoded credentials using standard `client_id` and `client_secret` field names.\n\nThis method is specifically designed for OAuth 2.0 clients like Grafana that send credentials as form-encoded data.\nFor JSON-based API calls, use [Get Access Token].\n\nThe client ID and secret you provide when calling this method must be from a set of API credentials from your Eon account.\nTo learn more about creating API credentials and completing the authentication flow, see [Authentication](/api/using-the-api/authentication).\n\nThe returned access token has the permissions included in the role you assigned to the API credentials.\nAlways make sure the API credentials have the permissions needed for the API methods you want to use it for.\n\nThe access token is valid for 12 hours.\nAfter that, you must call this method again to get a new token.\n\n[Get Access Token]: ./get-access-token\n","tags":["Auth"],"responses":{"200":{"description":"Authenticated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Oauth2TokenResponse"}}}},"404":{"description":"API credentials not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuth2TokenRequest"}}}}}},"/v1/api-credentials/{clientId}/rotate":{"post":{"operationId":"auth_rotateApiClientSecret","summary":"Rotate API Client Secret","description":"Replaces the client secret for the specified API client credentials.\n\nThis method can be used to rotate a secret for the API credentials specified in the request body.\nTo replace the client secret for the access key passed in the `Authorization` header, you can also use [Rotate Current API Client Secret].\n\nOnce replaced, the old client secret can't be used to authenticate or obtain new tokens.\nHowever, access tokens that were issued before the rotation remain valid until they expire.\nThis means there is an effective grace period of up to 12 hours where previously issued access tokens continue to work, even though the client secret used to obtain them has been rotated.\n\n[Rotate Current API Client Secret]: ./rotate-current-api-client-secret\n","tags":["Auth"],"parameters":[{"name":"clientId","in":"path","description":"API client ID.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Client secret rotated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCredentials"}}}},"404":{"description":"API credentials weren't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/api-credentials/current/rotate":{"post":{"operationId":"auth_rotateCurrentApiClientSecret","summary":"Rotate Current API Client Secret","description":"Replaces the client secret for the currently used set of API credentials.\n\nThis method can be used to rotate a secret only for the access key passed in the `Authorization` header.\nTo replace client secrets for other sets of API credentials, use [Rotate API Client Secret].\n\nOnce replaced, the old client secret can't be used to authenticate or obtain new tokens.\nHowever, access tokens that were issued before the rotation remain valid until they expire.\nThis means there is an effective grace period of up to 12 hours where previously issued access tokens continue to work, even though the client secret used to obtain them has been rotated.\n\n[Rotate API Client Secret]: ./rotate-api-client-secret\n","tags":["Auth"],"responses":{"200":{"description":"Client secret rotated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiCredentials"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/roles":{"post":{"operationId":"iam_createRole","summary":"Create Role","description":"Creates a custom role.<br/>\n\nWhen creating a role, you'll specify a list of permissions and, optionally, data access conditions.\nData access conditions let you restrict the resources a permission is granted for.\nFor example, for a particular role, you can set data access conditions to allow access only to resources without PII.\n","tags":["iam"],"responses":{"201":{"description":"Role created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"A role with the same name already exists.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/permissions":{"get":{"operationId":"iam_listPermissions","summary":"List Permissions","description":"Retrieves a list of user permissions.","tags":["iam"],"responses":{"200":{"description":"Permissions retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPermissionsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/roles/{roleId}":{"get":{"operationId":"iam_getRole","summary":"Get Role","description":"Retrieves a role.","tags":["iam"],"parameters":[{"name":"roleId","in":"path","description":"Role ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Role retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRoleResponse"}}}},"404":{"description":"Role wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"iam_updateRole","summary":"Update Role","description":"This API operation updates the details of a role using its unique ID. The request body must contain the updated role details.","tags":["iam"],"parameters":[{"name":"roleId","in":"path","description":"ID of the role","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleResponse"}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"description":"The request body for updating a user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRoleRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"iam_deleteRole","summary":"Delete Role","description":"Deletes a role.","tags":["iam"],"parameters":[{"name":"roleId","in":"path","description":"Role ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Role deleted.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Role not found","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/roles/list":{"post":{"operationId":"iam_listRoles","summary":"List Roles","description":"Retrieves a list of user roles.","tags":["iam"],"parameters":[{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Roles retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRolesResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/idps/list":{"post":{"operationId":"iam_listIdps","summary":"List Identity Providers","description":"Retrieves a list of identity providers for the account.","tags":["iam"],"parameters":[{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Identity providers retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListIdpsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/idp-groups":{"post":{"operationId":"iam_createIdpGroup","summary":"Create IdP Group Role Assignment","description":"Maps an identity provider group to one or more Eon roles.<br/>\n\nWhen users authenticate via SAML and belong to the specified group, they're granted the assigned roles.\n","tags":["iam"],"responses":{"201":{"description":"IdP group role assignment created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIdpGroupResponse"}}}},"400":{"description":"Validation error.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Identity provider not found.","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"A group with the same provider-assigned group ID already exists for the specified identity provider.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIdpGroupRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/idp-groups/{groupId}":{"get":{"operationId":"iam_getIdpGroup","summary":"Get IdP Group Role Assignment","description":"Retrieves an IdP group role assignment by ID.","tags":["iam"],"parameters":[{"name":"groupId","in":"path","description":"Eon-assigned IdP group role assignment ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"IdP group role assignment retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIdpGroupResponse"}}}},"404":{"description":"IdP group role assignment wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"iam_updateIdpGroup","summary":"Update IdP Group Role Assignment","description":"Updates the roles assigned to an IdP group.<br/>\n\nThis operation replaces all existing role assignments with the provided list.\nTo add a role, include all existing roles plus the new one.\nTo remove a role, include all roles except the one to remove.\n","tags":["iam"],"parameters":[{"name":"groupId","in":"path","description":"Eon-assigned IdP group role assignment ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"IdP group role assignment updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIdpGroupResponse"}}}},"404":{"description":"IdP group role assignment wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIdpGroupRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"iam_deleteIdpGroup","summary":"Delete IdP Group Role Assignment","description":"Deletes an IdP group role assignment.<br/>\n\nAfter deletion, users are no longer assigned roles from their membership in the specified group.\n","tags":["iam"],"parameters":[{"name":"groupId","in":"path","description":"Eon-assigned IdP group role assignment ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"IdP group role assignment deleted.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"IdP group role assignment wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/idp-groups/list":{"post":{"operationId":"iam_listIdpGroups","summary":"List IdP Group Role Assignments","description":"Retrieves a list of IdP group role assignments mapped in your Eon account.","tags":["iam"],"parameters":[{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"IdP group role assignments retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListIdpGroupsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/action-approvals/my-requests/{requestId}":{"get":{"operationId":"actionApprovals_getMyActionApprovalRequest","summary":"Get My Action Request","description":"Retrieves an action request that was created using the current caller's credentials.","tags":["actionApprovals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"requestId","in":"path","description":"ID of the action request.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Action request retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMPARequestResponse"}}}},"403":{"description":"Unauthorized because the action request was created by another caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Action request wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit":{"post":{"operationId":"actionApprovals_createActionApprovalRequest","summary":"Submit My Action Request","description":"Submit or discard an action request that's in its initial `CREATED` status.\n\nWhen submitting, the action request status changes to pending approval.\nThe approval window begins, and reviewers must approve before the window ends.\n\nWhen discarding, the action request is abandoned, and no further action can be taken.\n","tags":["actionApprovals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"requestId","in":"path","description":"ID of the action request.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Action request submitted or discarded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitMyMPARequestResponse"}}}},"403":{"description":"Unauthorized because the action request was created by another caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Action request wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Action request can't be submitted or discarded in its current status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitMyMPARequestRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/cancel":{"post":{"operationId":"actionApprovals_cancelActionApprovalRequest","summary":"Cancel My Action Request","description":"Cancel an action request created using the current caller's credentials.\n\nAction requests can be canceled only while the request is approved or pending approval.\n","tags":["actionApprovals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"requestId","in":"path","description":"ID of the action request.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Action request canceled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMyMPARequestResponse"}}}},"403":{"description":"Unauthorized because the action request was created by another caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Action request wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Action request can't be canceled in its current status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts":{"post":{"operationId":"accounts_connectSourceAccount","summary":"Connect Source Account","description":"Connects a source cloud account to the given project.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to connect the source account to.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Source account connected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectSourceAccountResponse"}}}},"409":{"description":"Source account already exists in Eon.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectSourceAccountRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts/{accountId}":{"get":{"operationId":"accounts_getSourceAccount","summary":"Get Source Account","description":"Retrieve a source account by ID.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Source account retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSourceAccountResponse"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"accounts_updateSourceAccount","summary":"Update Source Account","description":"Updates source account properties.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Source account updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSourceAccountResponse"}}}},"400":{"description":"Invalid request.\nTypically this indicates invalid JSON, invalid or changed source account ID, or the cloud provider did not accept verification of the updated role or service account.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSourceAccountRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"accounts_deleteSourceAccount","summary":"Delete Source Account","description":"Deletes a source account from the project.\n\nThis option is available only for source accounts whose status is `DISCONNECTED` or `INSUFFICIENT_PERMISSIONS`.\nSource accounts with `CONNECTED` status must be disconnected before they can be deleted.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account to delete.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Source account deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_deleteSourceAccount_Response_200"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"Source account is connected and can't be deleted.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts/list":{"post":{"operationId":"accounts_listSourceAccounts","summary":"List Source Accounts","description":"Retrieves a list of source accounts for the given project.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose source accounts you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Source accounts retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSourceAccountsResponse"}}}}},"requestBody":{"description":"Filter options.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSourceAccountsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts/{accountId}/disconnect":{"post":{"operationId":"accounts_DisconnectSourceAccount","summary":"Disconnect Source Account","description":"Disconnects a source account from the given project.\n\nAfter disconnecting, resources in the source account are no longer backed up.\nResources with snapshots continue to be displayed in the inventory, and you can still explore, query, and restore them.\nResources with no remaining snapshots are removed from the inventory.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account to disconnect.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Source account disconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectSourceAccountResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts/{accountId}/reconnect":{"post":{"operationId":"accounts_ReconnectSourceAccount","summary":"Reconnect Source Account","description":"Reconnects a source account to the given project.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose source account you want to reconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account to reconnect.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Source account reconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconnectSourceAccountResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-aws-organizational-units":{"post":{"operationId":"accounts_connectSourceAwsOrganizationalUnit","summary":"Connect Source AWS Organizational Unit","description":"Connects an AWS organizational unit to the given project.\n\nAll current and future descendant AWS accounts within the organizational unit are discovered and available for backup.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to connect the AWS organizational unit to.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit connected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectSourceAwsOrganizationalUnitResponse"}}}},"409":{"description":"AWS organizational unit already exists in Eon.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectSourceAwsOrganizationalUnitRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-aws-organizational-units/list":{"post":{"operationId":"accounts_listSourceAwsOrganizationalUnits","summary":"List Source AWS Organizational Units","description":"Retrieves a list of AWS organizational units for the given project.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational units you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"AWS organizational units retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSourceAwsOrganizationalUnitsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-aws-organizational-units/{organizationalUnitId}/disconnect":{"post":{"operationId":"accounts_disconnectSourceAwsOrganizationalUnit","summary":"Disconnect Source AWS Organizational Unit","description":"Disconnects an AWS organizational unit (OU) and its accounts from the given project.\n\nAfter disconnecting, resources in the OU descendant accounts are no longer backed up.\nResources with snapshots continue to be shown in the inventory, and you can still explore, query, and restore them.\nResources with no remaining snapshots are removed from the inventory.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational unit you want to disconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"organizationalUnitId","in":"path","description":"Eon-assigned ID of the AWS organizational unit to disconnect.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit disconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectSourceAwsOrganizationalUnitResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-aws-organizational-units/{organizationalUnitId}/reconnect":{"post":{"operationId":"accounts_reconnectSourceAwsOrganizationalUnit","summary":"Reconnect Source AWS Organizational Unit","description":"Reconnects a previously disconnected AWS organizational unit and its descendant accounts to the given project.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational unit you want to reconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"organizationalUnitId","in":"path","description":"Eon-assigned ID of the AWS organizational unit to reconnect.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit reconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconnectSourceAwsOrganizationalUnitResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/source-accounts/{accountId}/metrics-config":{"get":{"operationId":"accounts_getSourceAccountMetricsConfig","summary":"Get Source Account Metrics Configuration","description":"Retrieves the metrics configuration of the specified source account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose source account metrics configuration you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics configuration retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSourceAccountMetricsConfigResponse"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"accounts_enableSourceAccountMetricsConfig","summary":"Configure Source Account Metrics","description":"Enables or updates the metrics configuration of the specified source account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose source account metrics you want to configure.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics configuration set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableSourceAccountMetricsConfigResponse"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableSourceAccountMetricsConfigRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"accounts_disableSourceAccountMetricsConfig","summary":"Disable Source Account Metrics","description":"Disables metrics for the specified source account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose source account metrics configuration you want to disable.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the source account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_disableSourceAccountMetricsConfig_Response_200"}}}},"404":{"description":"Source account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts":{"post":{"operationId":"accounts_connectRestoreAccount","summary":"Connect Restore Account","description":"Connects a restore account to the given project.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to connect the source account to.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account connected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRestoreAccountResponse"}}}},"409":{"description":"Restore account already connected to the project.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRestoreAccountRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/{accountId}":{"get":{"operationId":"accounts_getRestoreAccount","summary":"Get Restore Account","description":"Retrieve a restore account by ID.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRestoreAccountResponse"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"accounts_updateRestoreAccount","summary":"Update Restore Account","description":"Updates restore account properties.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestoreAccountResponse"}}}},"400":{"description":"Invalid request.\nTypically this indicates invalid JSON, invalid or changed restore account ID, or the cloud provider did not accept verification of the updated role or service account.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestoreAccountRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"accounts_DeleteRestoreAccountV1","summary":"Delete Restore Account","description":"Deletes a restore account from the project.\n\nThis option is available only for restore accounts whose status is `DISCONNECTED` or `INSUFFICIENT_PERMISSIONS`.\nRestore accounts with `CONNECTED` status must be disconnected before they can be deleted.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account to delete.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_DeleteRestoreAccountV1_Response_200"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"Restore account is connected and can't be deleted.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/list":{"post":{"operationId":"accounts_listRestoreAccounts","summary":"List Restore Accounts","description":"Retrieves a list of restore accounts for the given project.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore accounts you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Restore accounts retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRestoreAccountsResponse"}}}}},"requestBody":{"description":"Filter options.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRestoreAccountsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/{accountId}/disconnect":{"post":{"operationId":"accounts_DisconnectRestoreAccount","summary":"Disconnect Restore Account","description":"Disconnects a restore account from the given project.\n\nAfter disconnecting, resources can no longer be restored to the restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account to disconnect.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Restore account disconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectRestoreAccountResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/{accountId}/reconnect":{"post":{"operationId":"accounts_ReconnectRestoreAccount","summary":"Reconnect Restore Account","description":"Reconnects a restore account to the given project.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account you want to reconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account to reconnect.","required":true,"schema":{"type":"string"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account reconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconnectRestoreAccountResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/{accountId}/connectivity-config":{"get":{"operationId":"accounts_getRestoreAccountConnectivityConfig","summary":"Get Restore Account Connectivity Configuration","description":"Retrieves the connectivity configuration of the specified restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account connectivity configuration you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account connectivity configuration retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRestoreAccountConnectivityConfigResponse"}}}},"404":{"description":"Restore account not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"accounts_updateRestoreAccountConnectivityConfig","summary":"Update Restore Account Connectivity Configuration","description":"Updates the connectivity configuration of the specified restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account connectivity configuration you want to update.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"ID of the restore account","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account connectivity configuration updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestoreAccountConnectivityConfigResponse"}}}},"404":{"description":"Restore account not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestoreAccountConnectivityConfigRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"accounts_deleteRestoreAccountConnectivityConfig","summary":"Delete Restore Account Connectivity Configuration","description":"Deletes the restore account connectivity configuration, reverting to the default settings.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account connectivity configuration you want to delete.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Restore account connectivity configuration deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_deleteRestoreAccountConnectivityConfig_Response_200"}}}},"404":{"description":"Restore account not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-aws-organizational-units":{"post":{"operationId":"accounts_connectRestoreAwsOrganizationalUnit","summary":"Connect Restore AWS Organizational Unit","description":"Connects an AWS organizational unit to the given project as a restore destination.\n\nAll current and future descendant AWS accounts within the organizational unit are discovered and available as restore accounts.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to connect the AWS organizational unit to.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit connected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRestoreAwsOrganizationalUnitResponse"}}}},"409":{"description":"AWS organizational unit already exists in Eon.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRestoreAwsOrganizationalUnitRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-aws-organizational-units/list":{"post":{"operationId":"accounts_listRestoreAwsOrganizationalUnits","summary":"List Restore AWS Organizational Units","description":"Retrieves a list of AWS restore organizational units for the given project.","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational units you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"AWS organizational units retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRestoreAwsOrganizationalUnitsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-aws-organizational-units/{organizationalUnitId}/disconnect":{"post":{"operationId":"accounts_disconnectRestoreAwsOrganizationalUnit","summary":"Disconnect Restore AWS Organizational Unit","description":"Disconnects an AWS restore organizational unit (OU) and its accounts from the given project.\n\nAfter disconnecting, the OU descendant accounts are no longer available as restore targets.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational unit you want to disconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"organizationalUnitId","in":"path","description":"Eon-assigned ID of the AWS organizational unit to disconnect.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit disconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisconnectRestoreAwsOrganizationalUnitResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-aws-organizational-units/{organizationalUnitId}/reconnect":{"post":{"operationId":"accounts_reconnectRestoreAwsOrganizationalUnit","summary":"Reconnect Restore AWS Organizational Unit","description":"Reconnects a previously disconnected AWS restore organizational unit and its descendant accounts to the given project.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose AWS organizational unit you want to reconnect.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"organizationalUnitId","in":"path","description":"Eon-assigned ID of the AWS organizational unit to reconnect.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"AWS organizational unit reconnected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconnectRestoreAwsOrganizationalUnitResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-accounts/{accountId}/metrics-config":{"get":{"operationId":"accounts_getRestoreAccountMetricsConfig","summary":"Get Restore Account Metrics Configuration","description":"Retrieves the metrics configuration of the specified restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account metrics configuration you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics configuration retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRestoreAccountMetricsConfigResponse"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"accounts_enableRestoreAccountMetricsConfig","summary":"Configure Restore Account Metrics","description":"Enables or updates the metrics configuration of the specified restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account metrics you want to configure.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics configuration set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableRestoreAccountMetricsConfigResponse"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableRestoreAccountMetricsConfigRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"accounts_disableRestoreAccountMetricsConfig","summary":"Disable Restore Account Metrics","description":"Disables metrics for the specified restore account.\n","tags":["accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore account metrics you want to disable.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Metrics disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounts_disableRestoreAccountMetricsConfig_Response_200"}}}},"404":{"description":"Restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}":{"get":{"operationId":"resources_getResource","summary":"Get Resource","description":"Retrieves a resource by ID.","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"include","in":"query","description":"Whether to include indexes for AWS DynamoDB in the response.\nTo minimize response size, these indexes are omitted by default.\n","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/InventoryDetail"}}}],"responses":{"200":{"description":"Resource retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetResourceResponse"}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources":{"post":{"operationId":"resources_listResources","summary":"List Resources","description":"Retrieves a list of resources for the given project.","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose resources you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}},{"name":"include","in":"query","description":"Whether to include indexes for AWS DynamoDB in the response.\nTo minimize response size, these indexes are omitted by default.\n","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/InventoryDetail"}}}],"responses":{"200":{"description":"Resources retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResourcesResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListInventoryRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/data-classifications":{"patch":{"operationId":"resources_overrideDataClasses","summary":"Override Data Classes","description":"Manually sets a resource's data classes, overriding auto-classification.\n\nYou can revert to auto-classification of data classes by calling [Remove Data Classes Override](remove-data-classes-override) for the same resource.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to override.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Data classes overridden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideDataClassificationsResponse"}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideDataClassificationsRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"resources_removeDataClassesOverride","summary":"Remove Data Classes Override","description":"Removes a resource's data classes override, which re-enables auto-classification for the resource.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to remove the override from.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Data classes override removed.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/environments":{"patch":{"operationId":"resources_overrideEnvironment","summary":"Override Environment","description":"Manually sets a resource's environment, overriding auto-classification.\n\nYou can revert to auto-classification of environment by calling [Remove Environment Override](remove-environment-override) for the same resource.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to override.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Environment overridden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideEnvironmentResponse"}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideEnvironmentRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"resources_removeEnvironmentOverride","summary":"Remove Environment Override","description":"Removes a resource's environment override, which re-enables auto-classification for the resource.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to remove the override from.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Environment override removed.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/exclude":{"patch":{"operationId":"resources_excludeResourceFromBackup","summary":"Exclude Resource from Backup","description":"Prevents a resource from being backed up by Eon and suppresses scanning and violations.\n\nYou can cancel this action by calling [Cancel Resource Backup Exclusion](cancel-resource-backup-exclusion) for the same resource.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to exclude from backup.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Resource excluded from backup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExcludeFromBackupResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/include":{"patch":{"operationId":"resources_cancelResourceBackupExclusion","summary":"Cancel Resource Backup Exclusion","description":"Allows a resource to be backed up by Eon, scanned, and checked for violations.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to cancel the backup exclusion for.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Resource backup exclusion canceled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelExclusionFromBackupResponse"}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/volumes/{volumeId}/exclude":{"patch":{"operationId":"resources_excludeVolumeFromBackup","summary":"Exclude Volume from Backup","description":"Excludes an EC2-attached EBS volume from being backed up by Eon.\n\nYou can cancel this action by calling [Cancel Volume Backup Exclusion](cancel-volume-backup-exclusion) for the same volume.\n\nRoot volumes can't be excluded.\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the EC2 instance the volume is attached to.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"volumeId","in":"path","description":"AWS-assigned ID of the EBS volume to exclude from backup.\nThe volume must be attached to the instance specified in `id` and must not be the root volume.\n","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Volume excluded from backup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExcludeFromBackupResponse"}}}},"400":{"description":"Invalid request.\nTypically this indicates invalid ID formats, or that a non-EC2 resource, non-EBS volume, or root volume was specified in the request.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Resource or volume wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/volumes/{volumeId}/include":{"patch":{"operationId":"resources_cancelVolumeBackupExclusion","summary":"Cancel Volume Backup Exclusion","description":"Allows an EC2-attached EBS volume to be backed up by Eon.\n\nBy default, all EBS volumes are included in backups.\nIt's not necessary to cancel a volume exclusion unless the volume was previously [excluded from backup](exclude-volume-from-backup).\n","tags":["Resources"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the EC2 instance is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the EC2 resource.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"volumeId","in":"path","description":"AWS-assigned ID of the EBS volume to include in backup.\nThe volume must be attached to the instance specified in `id`.\n","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Volume backup exclusion canceled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelExclusionFromBackupResponse"}}}},"400":{"description":"Invalid request.\nTypically this indicates invalid ID formats, or that a non-EC2 resource or non-EBS volume was specified in the request.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Resource or volume wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/vaults":{"post":{"operationId":"vaults_createVault","summary":"Create Vault","description":"Creates a vault in the specified project.\n\nBy default, vaults are encrypted using an Eon-managed KMS key.\nHowever, if your requirements mandate control over encryption keys, you can use a customer-managed KMS key.\nFor more information, see [About Self-Managed Vault Keys].\n\n<Error>\nIf you use self-managed vault keys, you assume responsibility for securing them from unauthorized access and deletion.\n</Error>\n\n[About Self-Managed Vault Keys]: /data-protection/backup-and-protection/backup-configuration/vaults/about-self-managed-vault-keys\n","tags":["Vaults"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the vault is created in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Vault created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVaultResponse"}}}},"409":{"description":"A vault with the same encryption key already exists in the specified region.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVaultRequestConflictError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVaultRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/vaults/{vaultId}":{"get":{"operationId":"vaults_getVault","summary":"Get Vault","description":"Retrieves a vault.","tags":["Vaults"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the vault is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"vaultId","in":"path","description":"ID of the vault to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Vault retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVaultResponse"}}}},"404":{"description":"Project or vault wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"vaults_updateVault","summary":"Update Vault","description":"Updates a vault's display name.","tags":["Vaults"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the vault is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"vaultId","in":"path","description":"ID of the vault to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Vault is updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVaultResponse"}}}},"404":{"description":"Project or vault wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVaultRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/vaults/list":{"post":{"operationId":"vaults_listVaults","summary":"List Vaults","description":"Retrieves a list of vaults in the specified project.","tags":["Vaults"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose vaults you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Vaults retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupVaultResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/take-snapshot":{"post":{"operationId":"backups_takeSnapshot","summary":"Take Snapshot","description":"Takes an on-demand snapshot of the specified resource.\n\nThis operation is asynchronous.\nIt triggers a backup job and returns a job ID, which can be used to track the progress of the backup job.\nYou can follow the progress of the backup job by calling [Get Backup Job](/api/api-reference/jobs/backup-jobs/get-backup-job) with the job ID.\n","tags":["backups"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource to back up.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"202":{"description":"Backup job started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TakeSnapshotResponse"}}}},"429":{"description":"Limit exceeded for the number of simultaneous on-demand backup jobs.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TakeSnapshotRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-policies":{"post":{"operationId":"backupPolicies_createBackupPolicy","summary":"Create Backup Policy","description":"Creates a backup policy.","tags":["backupPolicies"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to create a backup policy in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup policy created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBackupPolicyResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBackupPolicyRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-policies/{backupPolicyId}":{"get":{"operationId":"backupPolicies_getBackupPolicy","summary":"Get Backup Policy","description":"Retrieves a backup policy.","tags":["backupPolicies"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup policy you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"backupPolicyId","in":"path","description":"ID of the backup policy to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup policy retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBackupPolicyResponse"}}}},"404":{"description":"Backup policy wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"backupPolicies_updateBackupPolicy","summary":"Update Backup Policy","description":"Updates a backup policy.","tags":["backupPolicies"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup policy you want to update.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"backupPolicyId","in":"path","description":"ID of the backup policy to update.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup policy updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBackupPolicyResponse"}}}},"404":{"description":"Backup policy wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"description":"The request body for updating a policy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBackupPolicyRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"backupPolicies_deleteBackupPolicy","summary":"Delete Backup Policy","description":"Deletes a backup policy.","tags":["backupPolicies"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup policy you want to delete.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"backupPolicyId","in":"path","description":"ID of the backup policy to delete.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup policy deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/backupPolicies_deleteBackupPolicy_Response_200"}}}},"404":{"description":"Backup policy wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-policies/list":{"post":{"operationId":"backupPolicies_listBackupPolicies","summary":"List Backup Policies","description":"Retrieves a list of backup policies in the specified project.\n","tags":["backupPolicies"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup policies you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Backup policies retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupPoliciesResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-posture-controls":{"post":{"operationId":"backupPostureControls_createBackupPostureControl","summary":"Create Backup Posture Control","description":"Creates a backup posture control.","tags":["backupPostureControls"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project you want to create a backup posture control in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Backup posture control created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupPostureControl"}}}}},"requestBody":{"description":"Backup posture control to create.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBackupPostureControlRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-posture-controls/{controlId}":{"get":{"operationId":"backupPostureControls_getBackupPostureControl","summary":"Get Backup Posture Control","description":"Retrieves a backup posture control.","tags":["backupPostureControls"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup posture control you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"controlId","in":"path","description":"ID of the backup posture control to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup posture control retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupPostureControl"}}}},"404":{"description":"Backup posture control wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"backupPostureControls_updateBackupPostureControl","summary":"Update Backup Posture Control","description":"Updates a backup posture control.\n\nThe update is a full replacement, not a partial\nupdate.\nOmitted fields are reset and are no longer enforced as part of the control.\n","tags":["backupPostureControls"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup posture control you want to update.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"controlId","in":"path","description":"ID of the backup posture control to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup posture control updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupPostureControl"}}}},"404":{"description":"Backup posture control wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBackupPostureControlRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"backupPostureControls_deleteBackupPostureControl","summary":"Delete Backup Posture Control","description":"Deletes a backup posture control.\n","tags":["backupPostureControls"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup posture control you want to delete.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"controlId","in":"path","description":"ID of the backup posture control to delete.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Backup posture control deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/backupPostureControls_deleteBackupPostureControl_Response_200"}}}},"404":{"description":"Backup posture control wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-posture-controls/list":{"post":{"operationId":"backupPostureControls_listBackupPostureControls","summary":"List Backup Posture Controls","description":"Retrieves a list of backup posture controls in the specified project.","tags":["backupPostureControls"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose backup posture controls you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Opaque cursor for the next page of results, returned as `nextPageToken`\nby a previous call. Reuse the same request body for stable pagination.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of backup posture controls to return.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Backup posture controls retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupPostureControlsResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupPostureControlsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/snapshots/{id}":{"get":{"operationId":"snapshots_getSnapshot","summary":"Get Snapshot","description":"Retrieves an Eon snapshot.","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"ID of the Eon snapshot to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Snapshot retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSnapshotResponse"}}}},"404":{"description":"Snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots":{"post":{"operationId":"snapshots_listResourceSnapshots","summary":"List Resource Snapshots","description":"Retrieves a list of Eon snapshots for the given resource.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the resource is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned ID of the resource whose Eon snapshots you want to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Snapshots retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListInventorySnapshotsResponse"}}}},"404":{"description":"Resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"description":"Filter options.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListInventorySnapshotsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/snapshots/{id}/hold":{"patch":{"operationId":"snapshots_holdSnapshot","summary":"Hold Snapshot","description":"Places a user hold on an Eon snapshot.\nSnapshots with user holds are protected from removal even if their expiration time passes.\n\n<Note>\nPoint-in-time recovery (PiTR) snapshots can't be placed on hold.\n</Note>\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"ID of the Eon snapshot.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Hold was placed on the snapshot.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/snapshots_holdSnapshot_Response_200"}}}},"400":{"description":"Invalid snapshot hold requested.\nThis includes attempts to hold PiTR snapshots, which aren't supported.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldSnapshotRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/snapshots/{id}/remove-hold":{"patch":{"operationId":"snapshots_removeSnapshotHold","summary":"Remove Snapshot Hold","description":"Removes user hold from an Eon snapshot, allowing it to be removed once it passes its expiration time.\n\n<Warning>\nIf the snapshot is past its expiration time, it's marked for removal as soon as the hold is removed.\n</Warning>\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"ID of the Eon snapshot.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"User hold removed from snapshot.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/snapshots_removeSnapshotHold_Response_200"}}}},"404":{"description":"Snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-files":{"post":{"operationId":"snapshots_restoreFiles","summary":"Restore Files","description":"Restores files from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"202":{"description":"Restore job started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreJobInitiationResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreFilesRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-bucket":{"post":{"operationId":"snapshots_restoreBucket","summary":"Restore Bucket","description":"Restores a bucket from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreBucketRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-ec2-ebs-volume":{"post":{"operationId":"snapshots_restoreEbsVolume","summary":"Restore EBS Volume","description":"Restores an EBS volume from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Volume, snapshot, or restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreVolumeToEbsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/convert-ec2-ebs-snapshot":{"post":{"operationId":"snapshots_restoreToEbsSnapshot","summary":"Restore to EBS Snapshot","description":"Restores an Eon volume snapshot to an EBS snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Volume, snapshot, or restore account not found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreVolumeToEbsSnapshotRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-rds-instance":{"post":{"operationId":"snapshots_restoreDatabase","summary":"Restore RDS Instance","description":"Restores an RDS instance from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreDbToRdsInstanceRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-ec2-instance":{"post":{"operationId":"snapshots_restoreEc2Instance","summary":"Restore EC2 Instance","description":"Restores an EC2 instance from an Eon snapshot.\n\nWhen restoring an EC2 instance, you'll need to specify the configurations of the instance and each volume you want to restore.\nYou can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backup-management/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backup-management/snapshots/list-resource-snapshots).\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreAwsEc2InstanceRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-dynamo-db-table":{"post":{"operationId":"snapshots_restoreDynamoDBTable","summary":"Restore DynamoDB Table","description":"Restores a DynamoDB table from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreDynamoDBTableRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-vm-instance":{"post":{"operationId":"snapshots_restoreAzureVmInstance","summary":"Restore Azure VM Instance","description":"Restores an Azure VM instance from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreAzureVmInstanceRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-sql-database":{"post":{"operationId":"snapshots_restoreAzureSqlDatabase","summary":"Restore Azure SQL Database","description":"Restores an Azure SQL Database from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"description":"The request body for restoring the instance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreAzureSqlDatabaseRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-disk":{"post":{"operationId":"snapshots_restoreAzureDisk","summary":"Restore Azure Disk","description":"Restores an Azure disk from an Eon snapshot.\n\nWhen restoring a disk, you'll specify the configurations of the disk you want to restore.\nYou can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backup-management/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backup-management/snapshots/list-resource-snapshots).\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Volume, snapshot, or restore account wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreAzureDiskRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-disk":{"post":{"operationId":"snapshots_restoreGcpDisk","summary":"Restore GCP Disk","description":"Restores a GCP disk from an Eon snapshot.\n\nWhen restoring a disk, you'll specify the configurations of the disk you want to restore.\nYou can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backup-management/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backup-management/snapshots/list-resource-snapshots).\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreGcpDiskRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-vm-instance":{"post":{"operationId":"snapshots_restoreGcpVmInstance","summary":"Restore GCP VM Instance","description":"Restores a GCP VM instance from an Eon snapshot.\n\nWhen restoring a GCP VM instance, you'll need to specify the configurations of the instance and each disk you want to restore.\nYou can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backup-management/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backup-management/snapshots/list-resource-snapshots).\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreGcpVmInstanceRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-cloudsql":{"post":{"operationId":"snapshots_restoreGcpCloudSql","summary":"Restore GCP Cloud SQL Instance","description":"Restores a GCP Cloud SQL instance from an Eon snapshot.\n\nWhen restoring a GCP Cloud SQL instance, you'll need to specify the configurations of the database instance you want to restore.\nYou can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backup-management/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backup-management/snapshots/list-resource-snapshots).\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreGcpCloudSqlRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-bigquery-dataset":{"post":{"operationId":"snapshots_restoreBigQueryDataset","summary":"Restore BigQuery Dataset","description":"Restores a BigQuery dataset from an Eon snapshot.\n\nThis operation is asynchronous.\nIt triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.\nYou can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.\n","tags":["Snapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the snapshot is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","description":"Eon-assigned resource ID.","required":true,"schema":{"type":"string"}},{"name":"snapshotId","in":"path","description":"ID of the Eon [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) to restore.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"X-Action-Approval-Request-Id","in":"header","description":"ID of an approved action request.\nApplicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp;\n\n\nWhen used, the current API request must match the original request parameters.\nThe approved action request can be executed only by the original requester.\n","required":false,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Applicable only when the method is protected by an [action approval policy].\n\nAn action request was created in an initial state.\nThe action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](api:POST/v1/projects/{projectId}/action-approvals/my-requests/{requestId}/submit).\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MPAInterceptedResponse"}}}},"404":{"description":"Project, resource, or snapshot wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreBigQueryDatasetRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/snapshots/{snapshotId}/databases/query":{"post":{"operationId":"databaseSnapshots_runQuery","summary":"Run Query","description":"Runs a SQL query against a database snapshot.\n\nThis method is asynchronous.\nIt returns a query ID that you can use to check the status of the query.\nYou can then use the query ID to call [Get Query Status] and [Get Query Result].\n\nWhen the query is complete, the results are saved as a CSV to the location you specify in your restore account.\n\nIf the request fails, see [Troubleshooting Queries] for possible errors and how to resolve them.\n\n[Troubleshooting Queries]: /data-protection/backup-and-protection/exploring-and-querying/query/troubleshooting-queries\n[Get Query Status]: ./get-query-status\n[Get Query Result]: ./get-query-result\n","tags":["databaseSnapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project that contains the database snapshot you want to retrieve.\nYou can see your project ID in the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console. \n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"snapshotId","in":"path","description":"ID of the database [snapshot](/api/api-reference/backup-management/snapshots/list-resource-snapshots) you want to query.\nSnapshot must belong to an RDS resource.\n","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"202":{"description":"Querying database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryDBResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryDBRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/queries/{queryId}/status":{"get":{"operationId":"databaseSnapshots_getQueryStatus","summary":"Get Query Status","description":"Retrieves a query's status.\n\nThis method requires a query ID, which you can get only from the [Run Query](./run-query) response.\n\nWhen a query is completed, you can retrieve the query results in one of these ways:\n\n- Following the `outputLocation` URI in this method's response object.\n  The URI points to where the results are stored as a CSV file.\n- Calling [Get Query Result](./get-query-result).\n  Get Query Result returns a paginated array of results as JSON for additional processing or handling.\n\nIf the query failed, see [Troubleshooting Queries] for possible errors and how to resolve them.\n\n[Troubleshooting Queries]: /data-protection/backup-and-protection/exploring-and-querying/query/troubleshooting-queries\n","tags":["databaseSnapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project that contains the query status you want to retrieve.\nYou can see your project ID in the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console. \n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"queryId","in":"path","description":"Query ID returned by [Run Query](./run-query).","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Query status retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryDBStatusResponse"}}}},"404":{"description":"Query wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/queries/{queryId}/results":{"get":{"operationId":"databaseSnapshots_getQueryResult","summary":"Get Query Result","description":"Retrieves the results of a query.\n\nThis method requires a query ID, which you can get only from the [Run Query](./run-query) response.\n\nThis method can be used only when a query has completed.\nYou can check a query's status by calling [Get Query Status](./get-query-status).\n","tags":["databaseSnapshots"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project that contains the query you want to retrieve.\nYou can see your project ID in the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console. \n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"queryId","in":"path","description":"Query ID returned by [Run Query](./run-query).","required":true,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":500}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\n","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Query results retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryDBResultResponse"}}}},"404":{"description":"Query wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-jobs/{jobId}":{"get":{"operationId":"jobs_getBackupJob","summary":"Get Backup Job","description":"Retrieves a backup job by ID.","tags":["Jobs"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the job is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"jobId","in":"path","description":"ID of the job to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Job retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBackupJobResponse"}}}},"404":{"description":"Job wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/backup-jobs":{"post":{"operationId":"jobs_listBackupJobs","summary":"List Backup Jobs","description":"Retrieves a list of backup jobs for the given project.","tags":["Jobs"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore jobs you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Retrieved backup jobs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupJobsResponse"}}}}},"requestBody":{"description":"Filter and sort options.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBackupJobsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-jobs/{jobId}":{"get":{"operationId":"jobs_getRestoreJob","summary":"Get Restore Job","description":"Retrieves a restore job by ID.","tags":["Jobs"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the job is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"jobId","in":"path","description":"ID of the job to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Job retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRestoreJobResponse"}}}},"404":{"description":"Job wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-jobs":{"post":{"operationId":"jobs_listRestoreJobs","summary":"List Restore Jobs","description":"Retrieves a list of restore jobs for the given project.\n","tags":["Jobs"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose restore jobs you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Maximum number of items to return in the response.","required":false,"schema":{"type":"integer","minimum":1,"default":50}}],"responses":{"200":{"description":"Retrieved restore jobs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRestoreJobsResponse"}}}}},"requestBody":{"description":"Filter and sort options.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRestoreJobsRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/cost-data":{"post":{"operationId":"billing_queryCostData","summary":"Query Cost Data","description":"Retrieves cost and usage data for the given time frame.\n\nUse Query Cost Data to analyze backup costs by cloud provider, resource type, and resource.\nFor details on exploring your costs visually in the Eon console, see [About Cost Explorer](/data-protection/account-administration/administration/cost-explorer/about-the-cost-explorer).\n","tags":["Billing"],"parameters":[{"name":"pageSize","in":"query","description":"Maximum number of cost records to return in a single response.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response.\nTo preserve the results in the same order, use the same time frame, grouping, and filters in the first request as all subsequent requests.\n","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cost data retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryCostDataResponse"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryCostDataRequestBadRequestError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryCostDataRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/dashboard/daily-storage-summary":{"get":{"operationId":"dashboard_getDailyStorageSummaries","summary":"Get Daily Storage Summaries","description":"Retrieves a list of snapshot storage sizes per day for the given date range.","tags":["dashboard"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose daily storage summaries you want to retrieve.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"startDate","in":"query","description":"First day of the date range in `YYYY-MM-DD` format.","required":true,"schema":{"type":"string","format":"date"}},{"name":"endDate","in":"query","description":"Last day of the date range in `YYYY-MM-DD` format.","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Daily storage summaries retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DailyStorageSummaries"}}}}},"security":[{"ApiKeyAuth":[]}]}}},"tags":[{"name":"Auth","description":"Authentication and access token management."},{"name":"iam"},{"name":"actionApprovals"},{"name":"accounts","description":"Manage connected cloud accounts onboarded to Eon."},{"name":"Resources","description":"Discover and manage protected cloud resources."},{"name":"Vaults","description":"Manage backup vaults that store snapshots."},{"name":"backups"},{"name":"backupPolicies","description":"Define and manage backup policies and schedules."},{"name":"backupPostureControls"},{"name":"Snapshots","description":"Manage resource snapshots and point-in-time recovery points."},{"name":"databaseSnapshots","description":"Manage database snapshots and their recovery points."},{"name":"Jobs","description":"Track backup, restore, and other asynchronous jobs."},{"name":"Billing","description":"Access billing and usage metering information."},{"name":"dashboard"}],"servers":[{"url":"https://%7Baccount-domain%7D.console.eon.io/api","description":"https://{account-domain}.console.eon.io/api"}],"components":{"schemas":{"ApiCredentials":{"type":"object","properties":{"clientId":{"type":"string","description":"API client ID."},"clientSecret":{"type":"string","description":"API client secret."}},"required":["clientId","clientSecret"],"title":"ApiCredentials"},"TokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Access token, which you pass in the `Authorization` header when calling API methods."},"expirationSeconds":{"type":"integer","description":"Length of time until the token expires, in seconds.\n\nDefault: `43200` (12 hours).\n"}},"title":"TokenResponse"},"Error":{"type":"object","properties":{"error":{"type":"string"}},"title":"Error"},"OAuth2TokenRequestGrantType":{"type":"string","enum":["client_credentials"],"description":"The OAuth 2.0 grant type you're using.\nMust be `client_credentials`.\n","title":"OAuth2TokenRequestGrantType"},"OAuth2TokenRequest":{"type":"object","properties":{"client_id":{"type":"string","description":"API client ID."},"client_secret":{"type":"string","description":"API client secret."},"grant_type":{"$ref":"#/components/schemas/OAuth2TokenRequestGrantType","description":"The OAuth 2.0 grant type you're using.\nMust be `client_credentials`.\n"}},"required":["client_id","client_secret","grant_type"],"title":"OAuth2TokenRequest"},"Oauth2TokenResponse":{"type":"object","properties":{"access_token":{"type":"string","description":"Access token, which you pass in the `Authorization` header when calling API methods."},"token_type":{"type":"string","description":"Type of the token, which is always `Bearer`."},"expires_in":{"type":"integer","description":"Length of time until the token expires, in seconds.\nDefault: `43200` (12 hours).\n"}},"title":"Oauth2TokenResponse"},"PermissionType":{"type":"string","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","file_explorer.delete","storage_gateway_data.download","storage_gateway_metadata.view","data_catalog.view","discovery.trigger"],"description":"User permission.","title":"PermissionType"},"PermissionGrantInput":{"type":"object","properties":{"permission":{"$ref":"#/components/schemas/PermissionType"},"accessConditionId":{"type":"string","description":"If present, the ID of the set of access conditions that restrict the resources the permission is granted for.\nThe ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.\nIf omitted, the permission is granted for all resources.\n"}},"required":["permission"],"title":"PermissionGrantInput"},"AccessConditionEffect":{"type":"string","enum":["INCLUSIVE","EXCLUSIVE"],"description":"Whether the data access condition is an allowlist or blocklist.\n","title":"AccessConditionEffect"},"LogicalOperator":{"type":"string","enum":["AND","OR","UNSPECIFIED"],"description":"Logical operator to apply to the list of `operands`.\n`UNSPECIFIED` is supported only in responses.\n","title":"LogicalOperator"},"RoleAccessGroupCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/LogicalOperator"},"operands":{"type":"array","items":{"$ref":"#/components/schemas/AccessConditionalExpression"},"description":"List of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the list can be either a single expression or a nested `group` expression.\n\nMust contain at least 2 items.\n"}},"required":["operator","operands"],"description":"Group of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the `operands` list can be either a single expression or a nested `group` expression.\n","title":"RoleAccessGroupCondition"},"ScalarOperators":{"type":"string","enum":["IN","NOT_IN","UNSPECIFIED"],"description":"Evaluates whether the value is in the list.\n`UNSPECIFIED` is supported only in responses.\n","title":"ScalarOperators"},"ResourceType":{"type":"string","enum":["AWS_EC2","AWS_RDS","AWS_S3","AWS_EFS","AWS_FSX","AWS_EKS_NAMESPACE","AWS_DYNAMO_DB","AZURE_VIRTUAL_MACHINE","AZURE_FILE_SHARE","AZURE_STORAGE_ACCOUNT","AZURE_DISK","AZURE_SQL_DATABASE","AZURE_SQL_MANAGED_INSTANCE","AZURE_SQL_VIRTUAL_MACHINE","AZURE_MYSQL","AZURE_POSTGRESQL","AZURE_COSMOSDB_MONGODB","AZURE_COSMOSDB_NOSQL","ATLAS_MONGODB_CLUSTER","GCP_COMPUTE_ENGINE_INSTANCE","GCP_CLOUD_SQL_INSTANCE","GCP_CLOUD_STORAGE_BUCKET","RESOURCE_TYPE_UNSPECIFIED"],"description":"Resource type identifier combining cloud provider and service type.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"ResourceType"},"ResourceTypeCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"resourceTypes":{"type":"array","items":{"$ref":"#/components/schemas/ResourceType"},"description":"Resource types to evaluate.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n"}},"required":["operator","resourceTypes"],"title":"ResourceTypeCondition"},"ListOperators":{"type":"string","enum":["CONTAINS_ANY_OF","CONTAINS_NONE_OF","CONTAINS_ALL_OF","UNSPECIFIED"],"description":"Evaluates whether the original list constains any, all, or none of the values in this list.\n`UNSPECIFIED` is supported only in responses.\n","title":"ListOperators"},"DataClass":{"type":"string","description":"Data classes.\n\nAllowed values: `FI`, `PHI`, `PII`\n","title":"DataClass"},"DataClassesCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"dataClasses":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"}}},"required":["operator","dataClasses"],"title":"DataClassesCondition"},"Environment":{"type":"string","enum":["PROD","PROD_INTERNAL","STAGE","ENVIRONMENT_UNSPECIFIED"],"description":"The resource's environment: production, internal production, or staging.\n`ENVIRONMENT_UNSPECIFIED` is supported only in responses.\n","title":"Environment"},"EnvironmentCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"environments":{"type":"array","items":{"$ref":"#/components/schemas/Environment"}}},"required":["operator","environments"],"title":"EnvironmentCondition"},"AppsCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"apps":{"type":"array","items":{"type":"string"}}},"required":["operator","apps"],"title":"AppsCondition"},"Provider":{"type":"string","enum":["AWS","AZURE","GCP","MONGO_ATLAS","PROVIDER_UNSPECIFIED"],"description":"Cloud provider.\n`PROVIDER_UNSPECIFIED` is supported only in responses.\n","title":"Provider"},"CloudProviderCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"cloudProviders":{"type":"array","items":{"$ref":"#/components/schemas/Provider"}}},"required":["operator","cloudProviders"],"title":"CloudProviderCondition"},"AccountIdCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"accountIds":{"type":"array","items":{"type":"string"}}},"required":["operator","accountIds"],"title":"AccountIdCondition"},"RegionCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"regions":{"type":"array","items":{"type":"string"}}},"required":["operator","regions"],"title":"RegionCondition"},"VpcCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"vpcs":{"type":"array","items":{"type":"string"}}},"required":["operator","vpcs"],"title":"VpcCondition"},"SubnetsCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"subnets":{"type":"array","items":{"type":"string"}}},"required":["operator","subnets"],"title":"SubnetsCondition"},"ResourceGroupNameCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"resourceGroupNames":{"type":"array","items":{"type":"string"}}},"required":["operator","resourceGroupNames"],"title":"ResourceGroupNameCondition"},"StringOperators":{"type":"string","enum":["IN","NOT_IN","CONTAINS","NOT_CONTAINS","STARTS_WITH","NOT_STARTS_WITH","ENDS_WITH","NOT_ENDS_WITH","UNSPECIFIED"],"description":"Evaluates string values.\n`UNSPECIFIED` is supported only in responses.\n","title":"StringOperators"},"ResourceNameCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/StringOperators"},"resourceNames":{"type":"array","items":{"type":"string"}}},"required":["operator","resourceNames"],"title":"ResourceNameCondition"},"ResourceIdCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"resourceIds":{"type":"array","items":{"type":"string"}}},"required":["operator","resourceIds"],"title":"ResourceIdCondition"},"TagKeysCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"tagKeys":{"type":"array","items":{"type":"string"}}},"required":["operator","tagKeys"],"title":"TagKeysCondition"},"TagKeyValue":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key"],"title":"TagKeyValue"},"TagKeyValuesCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"tagKeyValues":{"type":"array","items":{"$ref":"#/components/schemas/TagKeyValue"}}},"required":["operator","tagKeyValues"],"title":"TagKeyValuesCondition"},"AccessConditionalExpression":{"type":"object","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"}},"description":"Conditional expression to evaluate to determine which resources are accessible.\n\nOnly one of the expressions below can be used.\nFor multiple conditions using `AND` or `OR` logic, group expressions with `group`.\nYou can nest multiple groups to create more complex expressions.\n","title":"AccessConditionalExpression"},"AccessCondition":{"type":"object","properties":{"id":{"type":"string","description":"Display name for the data access rule, which also serves as its ID for use in `permissionGrants`.\nValid characters: `[a-zA-Z0-9-_.\\s]`.\n"},"effect":{"$ref":"#/components/schemas/AccessConditionEffect"},"expression":{"$ref":"#/components/schemas/AccessConditionalExpression"}},"required":["id","effect","expression"],"title":"AccessCondition"},"RestoreDestinationLimits":{"type":"object","properties":{"effect":{"$ref":"#/components/schemas/AccessConditionEffect"},"restoreAccountProviderIds":{"type":"array","items":{"type":"string"},"description":"List of cloud-provider-assigned restore account IDs to match against.\n"}},"required":["effect","restoreAccountProviderIds"],"description":"Limits the restore accounts that can be used as restore destinations for operations granted by the role.\n","title":"RestoreDestinationLimits"},"CreateRoleRequest":{"type":"object","properties":{"name":{"type":"string","description":"Role display name.\nMust be unique in your Eon account.\n"},"permissionGrants":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGrantInput"},"description":"Permissions granted by the role."},"accessConditions":{"type":"array","items":{"$ref":"#/components/schemas/AccessCondition"},"description":"If present, the ID of the set of access conditions that restrict the resources the permission is granted for.\nThe ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.\nIf omitted, the permission is granted for all resources.\n"},"restoreDestinationLimits":{"$ref":"#/components/schemas/RestoreDestinationLimits"}},"required":["name","permissionGrants"],"title":"CreateRoleRequest"},"PermissionGrant":{"type":"object","properties":{"permission":{"$ref":"#/components/schemas/PermissionType"},"accessConditionId":{"type":"string","description":"If present, the ID of the set of access conditions that restrict the resources the permission is granted for.\nThe ID must be present in an entry in `accessConditions`, and the permission itself must support access conditions.\nIf omitted, the permission is granted for all resources.\n"}},"required":["permission"],"title":"PermissionGrant"},"Role":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Role ID."},"name":{"type":"string","description":"Role display name."},"isBuiltInRole":{"type":"boolean","description":"Whether the role is a default role.\nIf `true`, the role is a default role provided by Eon and can't be modified or deleted.\nIf `false`, the role is a custom, user-created role.\n"},"permissionGrants":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGrant"},"description":"List of permissions granted by the role."},"accessConditions":{"type":"array","items":{"$ref":"#/components/schemas/AccessCondition"},"description":"Sets of access conditions that restrict the resources a permission is granted for.\nIDs are set by you and are applied to the relevant permission in `permissionGrants`.\nAn access condition can be applied to more than one permission grant.\n"},"restoreDestinationLimits":{"$ref":"#/components/schemas/RestoreDestinationLimits"}},"required":["id","name","isBuiltInRole","permissionGrants"],"description":"Role.","title":"Role"},"CreateRoleResponse":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Role"}},"required":["role"],"title":"CreateRoleResponse"},"Permission":{"type":"object","properties":{"permissionType":{"$ref":"#/components/schemas/PermissionType"},"description":{"type":"string","description":"Description of the actions the permission allows."},"allowConditions":{"type":"boolean","default":false,"description":"Whether the permission can be restricted with access conditions.\nRelevant when the permission is used in a user role.\n"}},"required":["permissionType","description","allowConditions"],"title":"Permission"},"ListPermissionsResponse":{"type":"object","properties":{"permissions":{"type":"array","items":{"$ref":"#/components/schemas/Permission"},"description":"List of available user permissions."}},"required":["permissions"],"title":"ListPermissionsResponse"},"GetRoleResponse":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Role"}},"required":["role"],"title":"GetRoleResponse"},"ListRolesResponse":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/Role"}},"totalCount":{"type":"integer","description":"Total number of roles."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["roles"],"title":"ListRolesResponse"},"UpdateRoleRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name of the role"},"permissionGrants":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGrantInput"},"description":"The permissions of the role"},"accessConditions":{"type":"array","items":{"$ref":"#/components/schemas/AccessCondition"},"description":"The condition of the role, keyed by name"},"restoreDestinationLimits":{"$ref":"#/components/schemas/RestoreDestinationLimits"}},"required":["name","permissionGrants"],"title":"UpdateRoleRequest"},"UpdateRoleResponse":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/Role"}},"required":["role"],"title":"UpdateRoleResponse"},"Idp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Eon-assigned identity provider ID."},"providerName":{"type":"string","description":"Identity provider display name."}},"required":["id","providerName"],"description":"Identity provider.","title":"Idp"},"ListIdpsResponse":{"type":"object","properties":{"idps":{"type":"array","items":{"$ref":"#/components/schemas/Idp"},"description":"List of identity providers."},"totalCount":{"type":"integer","description":"Total number of identity providers."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["idps","totalCount"],"title":"ListIdpsResponse"},"CreateIdpGroupRequest":{"type":"object","properties":{"idpId":{"type":"string","format":"uuid","description":"[ID of the identity provider](./list-idps) the group belongs to."},"providerGroupId":{"type":"string","description":"Identity-provider-assigned group ID.\nMust match the exact group ID passed by the identity provider to Eon during SAML sign-on.\n"},"roleIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of [role IDs](../roles/list-roles) to assign to the group."},"displayName":{"type":["string","null"],"description":"Display name for the group role assignment.\nNot used when matching SAML groups during sign-on.\n"}},"required":["idpId","providerGroupId","roleIds"],"title":"CreateIdpGroupRequest"},"IdpGroup":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Eon-assigned group ID."},"idpId":{"type":"string","format":"uuid","description":"[ID of the identity provider](./list-idps) the group belongs to.\n"},"providerGroupId":{"type":"string","description":"Identity-provider-assigned group ID.\nMust match the exact group ID passed by the identity provider to Eon during SAML sign-on.\n"},"roleIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of [role IDs](../roles/list-roles) assigned to the group."},"displayName":{"type":"string","description":"Display name for the group role assignment.\nNot used when matching SAML groups during sign-on.\n"}},"required":["id","idpId","providerGroupId","roleIds"],"description":"IdP group role assignment.","title":"IdpGroup"},"CreateIdpGroupResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/IdpGroup","description":"IdP group role assignment."}},"required":["group"],"title":"CreateIdpGroupResponse"},"GetIdpGroupResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/IdpGroup","description":"IdP group role assignment."}},"required":["group"],"title":"GetIdpGroupResponse"},"ListIdpGroupsResponse":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/IdpGroup"},"description":"List of IdP group role assignments."},"totalCount":{"type":"integer","description":"Total number of IdP group role assignments."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["groups"],"title":"ListIdpGroupsResponse"},"UpdateIdpGroupRequest":{"type":"object","properties":{"roleIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of [role IDs](../roles/list-roles) to assign to the group.\nThis replaces all existing role assignments.\n"},"displayName":{"type":["string","null"],"description":"Display name for the group role assignment.\nNot used when matching SAML groups during sign-on.\n\nOmit or send null to leave the existing display name unchanged.\nSend an empty string to clear it.\n"}},"required":["roleIds"],"title":"UpdateIdpGroupRequest"},"UpdateIdpGroupResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/IdpGroup","description":"Updated IdP group role assignment."}},"required":["group"],"title":"UpdateIdpGroupResponse"},"MPAOperationType":{"type":"string","enum":["MPA_OPERATION_TYPE_UNSPECIFIED","MPA_OPERATION_ADD_RESTORE_ACCOUNT","MPA_OPERATION_RESTORE_RESOURCE","MPA_OPERATION_UPDATE_BACKUP_POLICY","MPA_OPERATION_DELETE_BACKUP_POLICY","MPA_OPERATION_CREATE_BACKUP_POLICY"],"description":"Operation that requires action approval before it can be completed.","title":"MPAOperationType"},"MPARequestStatus":{"type":"string","enum":["MPA_REQUEST_STATUS_UNSPECIFIED","CREATED","PENDING_APPROVAL","APPROVED","DENIED","EXPIRED_PENDING_APPROVAL","EXPIRED_APPROVED","EXECUTED","CANCELED_PENDING_APPROVAL","CANCELED_APPROVED","DISCARDED"],"description":"Action request status.\nFor an explanation of statuses, see [Action Request Statuses](/data-protection/account-administration/access-management/action-approvals/action-request-statuses).\n","title":"MPARequestStatus"},"MPARequestPolicyDetail":{"type":"object","properties":{"requiredApprovals":{"type":"integer","description":"Count of approvals the rule requires."},"currentApprovals":{"type":"integer","description":"Count of qualifying approvals received."},"executionWindowHours":{"type":"integer","description":"After all required approvals are received, number of hours the requester has to complete the action."},"approvalWindowHours":{"type":"integer","description":"After submitting the action request, number of hours allowed for gathering all required approvals."},"description":{"type":"string","description":"Rule description."},"approverIdpId":{"type":["string","null"],"format":"uuid","description":"Eon-assigned ID of the SAML identity provider the approver group belongs to.\nUsed in combination with `approverProviderGroupId`.\n"},"approverProviderGroupId":{"type":["string","null"],"description":"Identity-provider-assigned ID of the group.\nUsed in combination with `approverIdpId`.\n"}},"required":["requiredApprovals","currentApprovals","executionWindowHours","approvalWindowHours"],"title":"MPARequestPolicyDetail"},"MPARequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the action request."},"operation":{"$ref":"#/components/schemas/MPAOperationType"},"requesterEmail":{"type":"string","description":"Email address of the requester."},"requesterName":{"type":"string","description":"Display name of the requester at the time the request was created."},"comment":{"type":"string","description":"Comment from the requester explaining why they want to perform the action."},"status":{"$ref":"#/components/schemas/MPARequestStatus"},"policyDetails":{"type":"array","items":{"$ref":"#/components/schemas/MPARequestPolicyDetail"},"description":"List of the action request's approval rules.\nEach item contains the rule's configuration and approval progress.\n"},"approvalExpirationTime":{"type":["string","null"],"format":"date-time","description":"Deadline for gathering approvals.\nOmitted before the request is submitted or after it's discarded.\n"},"executionExpirationTime":{"type":["string","null"],"format":"date-time","description":"Deadline for completing the approved action.\nSet when the request is approved.\n"},"resolvedTime":{"type":["string","null"],"format":"date-time","description":"Time when the request reached a terminal state, such as executed, expired, canceled, denied, or discarded.\nOmitted while the request is still active.\n"},"createdTime":{"type":"string","format":"date-time","description":"Time when the approval request was created."}},"required":["id","operation","requesterEmail","status","policyDetails","createdTime"],"description":"Action request details.","title":"MPARequest"},"MPADecision":{"type":"string","enum":["APPROVED","DENIED","CANCELLED"],"description":"Reviewer decision.","title":"MPADecision"},"MPAReview":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the review."},"reviewerEmail":{"type":"string","description":"Email address of the reviewer."},"reviewerName":{"type":"string","description":"Display name of the reviewer at the time the review was submitted."},"decision":{"$ref":"#/components/schemas/MPADecision"},"comment":{"type":"string","description":"Comment explaining the reviewer's decision."},"reviewedTime":{"type":"string","format":"date-time","description":"Time when the review was submitted."}},"required":["id","reviewerEmail","decision","reviewedTime"],"title":"MPAReview"},"MPARequestDetail":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/MPARequest"},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/MPAReview"},"description":"List of responses submitted by reviewers."}},"required":["request","reviews"],"title":"MPARequestDetail"},"GetMPARequestResponse":{"type":"object","properties":{"mpaRequestDetail":{"$ref":"#/components/schemas/MPARequestDetail"}},"required":["mpaRequestDetail"],"title":"GetMPARequestResponse"},"MPASubmitAction":{"type":"string","enum":["MPA_SUBMIT_ACTION_UNSPECIFIED","CONFIRM","DISCARD"],"description":"Action to take on the initial request.\nThe requester can submit (confirm) or discard the request.\n","title":"MPASubmitAction"},"SubmitMyMPARequestRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/MPASubmitAction"},"comment":{"type":"string","description":"Comment from the requester explaining why they want to perform the action."}},"required":["action"],"title":"SubmitMyMPARequestRequest"},"SubmitMyMPARequestResponse":{"type":"object","properties":{"actionApprovalRequest":{"$ref":"#/components/schemas/MPARequest"}},"title":"SubmitMyMPARequestResponse"},"CancelMyMPARequestResponse":{"type":"object","properties":{"actionApprovalRequest":{"$ref":"#/components/schemas/MPARequest"}},"required":["actionApprovalRequest"],"title":"CancelMyMPARequestResponse"},"AwsSourceAccountAttributesInput":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS."}},"required":["roleArn"],"description":"AWS account configuration.\nApplicable if `cloudProvider` is set to `AWS`.\n","title":"AwsSourceAccountAttributesInput"},"AzureSourceAccountAttributesInput":{"type":"object","properties":{"tenantId":{"type":"string","format":"uuid","description":"ID of the Azure tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"ID of the Azure source subscription."},"eonInternalResourceGroupName":{"type":"string","default":"eon-source-internal-rg","description":"Resource group name for Eon's temporary internal resources.\n"}},"required":["tenantId","subscriptionId"],"description":"Azure subscription configuration.\nApplicable if `cloudProvider` is set to `AZURE`.\n","title":"AzureSourceAccountAttributesInput"},"GcpSourceAccountAttributesInput":{"type":"object","properties":{"serviceAccount":{"type":"string","description":"Email address of the GCP service account Eon uses to access the project."}},"required":["serviceAccount"],"description":"GCP project configuration.\nApplicable if `cloudProvider` is set to `GCP`.\n","title":"GcpSourceAccountAttributesInput"},"SourceAccountAttributesInput":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsSourceAccountAttributesInput"},"azure":{"$ref":"#/components/schemas/AzureSourceAccountAttributesInput"},"gcp":{"$ref":"#/components/schemas/GcpSourceAccountAttributesInput"}},"required":["cloudProvider"],"title":"SourceAccountAttributesInput"},"ConnectSourceAccountRequest":{"type":"object","properties":{"name":{"type":"string","description":"Account display name in Eon."},"sourceAccountAttributes":{"$ref":"#/components/schemas/SourceAccountAttributesInput","description":"Cloud-provider-specific configuration for the source account.\n"}},"required":["sourceAccountAttributes"],"title":"ConnectSourceAccountRequest"},"AccountState":{"type":"string","enum":["CONNECTED","DISCONNECTED","INSUFFICIENT_PERMISSIONS","ACCOUNT_STATUS_UNSPECIFIED"],"description":"Connection status of the AWS account, Azure subscription, or GCP project.\n`ACCOUNT_STATUS_UNSPECIFIED` is supported only in responses.\n","title":"AccountState"},"AccountInstallationMethod":{"type":"string","enum":["UNSPECIFIED","CLOUDFORMATION","TERRAFORM","BASH_SCRIPT"],"default":"UNSPECIFIED","description":"Method used to deploy the cloud permissions.\n`UNSPECIFIED` is supported only in responses.\n","title":"AccountInstallationMethod"},"AccountVersion":{"type":"object","properties":{"installed":{"type":"string","description":"Currently installed permissions version."},"installationMethod":{"$ref":"#/components/schemas/AccountInstallationMethod","default":"UNSPECIFIED"},"latest":{"type":"string","description":"Latest available permissions version."}},"required":["installed"],"description":"Details on the Eon permissions version and installation method.\n","title":"AccountVersion"},"AwsSourceAccountAttributes":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS."},"organizationId":{"type":"string","description":"Cloud-provider-assigned ID of the AWS organization the account belongs to."}},"required":["roleArn"],"description":"AWS account configuration.\nApplicable if `cloudProvider` is set to `AWS`.\n","title":"AwsSourceAccountAttributes"},"GcpSourceAccountAttributes":{"type":"object","properties":{"serviceAccount":{"type":"string"},"organizationId":{"type":"string","description":"Cloud-provider-assigned ID of the GCP project's parent organization."},"folderId":{"type":"string","description":"Cloud-provider-assigned ID of the GCP project's parent folder."}},"required":["serviceAccount"],"description":"GCP project configuration.\nApplicable if `cloudProvider` is set to `GCP`.\n","title":"GcpSourceAccountAttributes"},"AzureSourceAccountAttributes":{"type":"object","properties":{"tenantId":{"type":"string","format":"uuid","description":"ID of the Azure tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"ID of the Azure subscription."},"eonInternalResourceGroupName":{"type":"string","default":"eon-source-internal-rg","description":"Resource group name for Eon's temporary internal resources.\n"},"managementGroupId":{"type":"string","description":"ID of the Azure management group the source account is scoped to."}},"required":["tenantId","subscriptionId"],"description":"Azure subscription configuration.\nApplicable if `cloudProvider` is set to `AZURE`.\n","title":"AzureSourceAccountAttributes"},"SourceAccountCloudAttributes":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsSourceAccountAttributes"},"gcp":{"$ref":"#/components/schemas/GcpSourceAccountAttributes"},"azure":{"$ref":"#/components/schemas/AzureSourceAccountAttributes"}},"required":["cloudProvider"],"title":"SourceAccountCloudAttributes"},"SourceAccount":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned source account ID."},"providerAccountId":{"type":"string","description":"Cloud-provider-assigned account ID."},"name":{"type":"string","description":"Account display name in Eon."},"providerAccountName":{"type":"string","description":"Display name inherited from the cloud provider."},"status":{"$ref":"#/components/schemas/AccountState","description":"Connection status of the AWS account, Azure subscription, or GCP project.\nOnly `CONNECTED` source accounts can be backed up.\n\nFor an explanation of statuses, see [Source Account Statuses](/data-protection/backup-and-protection/backup-configuration/source-accounts/source-account-statuses).\n"},"version":{"$ref":"#/components/schemas/AccountVersion"},"connectedTime":{"type":"string","format":"date-time","description":"Date and time the account was connected to Eon."},"sourceAccountAttributes":{"$ref":"#/components/schemas/SourceAccountCloudAttributes","description":"Cloud provider-specific configuration for the restore account.\n"}},"required":["id","providerAccountId","name","status","sourceAccountAttributes"],"title":"SourceAccount"},"ConnectSourceAccountResponse":{"type":"object","properties":{"sourceAccount":{"$ref":"#/components/schemas/SourceAccount","description":"Source account."}},"required":["sourceAccount"],"title":"ConnectSourceAccountResponse"},"GetSourceAccountResponse":{"type":"object","properties":{"sourceAccount":{"$ref":"#/components/schemas/SourceAccount","description":"The requested source account."}},"required":["sourceAccount"],"title":"GetSourceAccountResponse"},"IdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `id`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `id`."}},"title":"IdFilters"},"ProviderAccountIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list equals `providerAccountId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list equal `providerAccountId`."}},"title":"ProviderAccountIdFilters"},"AccountStatusFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/AccountState"},"description":"Matches if any value in this list equals `accountStatus`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/AccountState"},"description":"Matches if no value in this list equals `accountStatus`."}},"title":"AccountStatusFilters"},"CloudProviderFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/Provider"},"description":"Matches if any value in this list equals `cloudProvider`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/Provider"},"description":"Matches if none of the values in this list equal `cloudProvider`."}},"title":"CloudProviderFilters"},"AccountNameFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `accountName`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `accountName`."},"contains":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list is a substring of `accountName`."},"notContains":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list is a substring of `accountName`."}},"title":"AccountNameFilters"},"SourceAccountsFilterConditions":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/IdFilters","description":"Filters for the Eon-assigned account ID."},"providerAccountId":{"$ref":"#/components/schemas/ProviderAccountIdFilters","description":"Filters for the cloud-provider-assigned account ID."},"accountStatus":{"$ref":"#/components/schemas/AccountStatusFilters","description":"Filters for the account status."},"cloudProvider":{"$ref":"#/components/schemas/CloudProviderFilters","description":"Filters for the cloud provider."},"accountName":{"oneOf":[{"$ref":"#/components/schemas/AccountNameFilters"},{"type":"null"}],"description":"Filters for the account name."}},"description":"Filter conditions.\nIf omitted, no filtering is applied.\n","title":"SourceAccountsFilterConditions"},"SourceAccountSortField":{"type":"string","enum":["accountName","installedVersion","parentIdentifier","createdAt"],"description":"Field to sort by.","title":"SourceAccountSortField"},"SortOrder":{"type":"string","enum":["ASC","DESC"],"description":"Sort order. Use `ASC` for ascending order and `DESC` for descending order.","title":"SortOrder"},"SortSourceAccountsBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/SourceAccountSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortSourceAccountsBy"},"ListSourceAccountsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/SourceAccountsFilterConditions"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortSourceAccountsBy"}}},"title":"ListSourceAccountsRequest"},"ListSourceAccountsResponse":{"type":"object","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/SourceAccount"},"description":"List of source accounts."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of source accounts that matched the filter options."}},"required":["accounts","totalCount"],"title":"ListSourceAccountsResponse"},"UpdateAwsSourceAccountAttributes":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS.\nOnly the role name portion of the ARN can be changed.\nThe AWS account ID must remain the same.\n"}},"description":"Updatable AWS account fields.\n","title":"UpdateAwsSourceAccountAttributes"},"UpdateGcpSourceAccountAttributes":{"type":"object","properties":{"serviceAccount":{"type":"string","description":"Email of the service account Eon impersonates to access the GCP project.\nOnly the service account name portion can be changed.\nThe GCP project ID must remain the same.\n"}},"description":"Updatable GCP account fields.\n","title":"UpdateGcpSourceAccountAttributes"},"UpdateSourceAccountAttributesInput":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/UpdateAwsSourceAccountAttributes"},"gcp":{"$ref":"#/components/schemas/UpdateGcpSourceAccountAttributes"}},"description":"Cloud-provider-specific fields to update.\nOne of: `aws`, `gcp`.\n","title":"UpdateSourceAccountAttributesInput"},"UpdateSourceAccountRequest":{"type":"object","properties":{"name":{"type":"string","description":"Display name for the source account in Eon."},"sourceAccountAttributes":{"$ref":"#/components/schemas/UpdateSourceAccountAttributesInput"}},"title":"UpdateSourceAccountRequest"},"UpdateSourceAccountResponse":{"type":"object","properties":{"sourceAccount":{"$ref":"#/components/schemas/SourceAccount","description":"Updated source account."}},"required":["sourceAccount"],"title":"UpdateSourceAccountResponse"},"DisconnectSourceAccountResponse":{"type":"object","properties":{"sourceAccount":{"$ref":"#/components/schemas/SourceAccount","description":"Disconnected source account."}},"required":["sourceAccount"],"title":"DisconnectSourceAccountResponse"},"ReconnectSourceAccountResponse":{"type":"object","properties":{"sourceAccount":{"$ref":"#/components/schemas/SourceAccount","description":"Reconnected source account."}},"required":["sourceAccount"],"title":"ReconnectSourceAccountResponse"},"accounts_deleteSourceAccount_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"accounts_deleteSourceAccount_Response_200"},"ConnectSourceAwsOrganizationalUnitRequest":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the organizational unit in AWS."},"providerOrganizationalUnitId":{"type":"string","description":"AWS-assigned organizational unit ID."}},"required":["roleArn","providerOrganizationalUnitId"],"title":"ConnectSourceAwsOrganizationalUnitRequest"},"SourceAwsOrganizationalUnit":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned organizational unit ID."},"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the organizational unit in AWS."},"name":{"type":"string","description":"Organizational unit display name in Eon."},"providerOrganizationalUnitId":{"type":"string","description":"AWS-assigned organizational unit ID."},"providerManagementAccountId":{"type":"string","description":"AWS-assigned ID of the organization's management account."},"status":{"$ref":"#/components/schemas/AccountState","description":"Connection status of the organizational unit.\nOnly `CONNECTED` organizational units can have their accounts backed up.\n"}},"required":["id","roleArn","name","providerOrganizationalUnitId","providerManagementAccountId","status"],"title":"SourceAwsOrganizationalUnit"},"ConnectSourceAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit","description":"The connected AWS organizational unit."}},"required":["organizationalUnit"],"title":"ConnectSourceAwsOrganizationalUnitResponse"},"ListSourceAwsOrganizationalUnitsResponse":{"type":"object","properties":{"organizationalUnits":{"type":"array","items":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit"},"description":"List of AWS organizational units."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of AWS organizational units that matched the filter options."}},"required":["organizationalUnits","totalCount"],"title":"ListSourceAwsOrganizationalUnitsResponse"},"DisconnectSourceAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit","description":"The disconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"DisconnectSourceAwsOrganizationalUnitResponse"},"ReconnectSourceAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit","description":"The reconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"ReconnectSourceAwsOrganizationalUnitResponse"},"AwsAccountMetricsDestination":{"type":"object","properties":{"region":{"type":"string","description":"CloudWatch region to publish metrics to."}},"title":"AwsAccountMetricsDestination"},"AccountMetricsDestination":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/AwsAccountMetricsDestination","description":"AWS metrics destination settings."}},"title":"AccountMetricsDestination"},"SourceAccountMetricsConfig":{"type":"object","properties":{"sourceAccountId":{"type":"string","description":"Eon-assigned source account ID."},"enabled":{"type":"boolean","description":"Indicates whether job metrics are enabled for the source account.\nIf `true`, job metrics are collected and can be queried.\n"},"destination":{"$ref":"#/components/schemas/AccountMetricsDestination","description":"Metrics destination settings."}},"required":["sourceAccountId","enabled","destination"],"title":"SourceAccountMetricsConfig"},"GetSourceAccountMetricsConfigResponse":{"type":"object","properties":{"sourceAccountConfig":{"$ref":"#/components/schemas/SourceAccountMetricsConfig"}},"required":["sourceAccountConfig"],"title":"GetSourceAccountMetricsConfigResponse"},"EnableSourceAccountMetricsConfigRequest":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/AwsAccountMetricsDestination","description":"Metrics configuration for an AWS source account."}},"title":"EnableSourceAccountMetricsConfigRequest"},"EnableSourceAccountMetricsConfigResponse":{"type":"object","properties":{"sourceAccountConfig":{"$ref":"#/components/schemas/SourceAccountMetricsConfig"}},"required":["sourceAccountConfig"],"title":"EnableSourceAccountMetricsConfigResponse"},"accounts_disableSourceAccountMetricsConfig_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"accounts_disableSourceAccountMetricsConfig_Response_200"},"AwsRestoreAccountAttributesInput":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS."}},"required":["roleArn"],"description":"AWS account configuration.\nApplicable if `cloudProvider` is set to `AWS`.\n","title":"AwsRestoreAccountAttributesInput"},"AzureRestoreAccountAttributesInput":{"type":"object","properties":{"tenantId":{"type":"string","description":"ID of the tenant the subscription belongs to."},"subscriptionId":{"type":"string","description":"Subscription ID.\n"},"resourceGroupName":{"type":"string","description":"Resource group name."},"eonInternalResourceGroupName":{"type":"string","default":"eon-restore-internal-rg","description":"Resource group name for Eon's temporary internal resources.\n"}},"required":["tenantId","subscriptionId"],"description":"Azure subscription configuration.\nApplicable if `cloudProvider` is set to `AZURE`.\n","title":"AzureRestoreAccountAttributesInput"},"GcpRestoreAccountAttributesInput":{"type":"object","properties":{"serviceAccount":{"type":"string","description":"Email address of the GCP service account Eon uses to access the project for restore operations."}},"required":["serviceAccount"],"description":"GCP project configuration.\nApplicable if `cloudProvider` is set to `GCP`.\n","title":"GcpRestoreAccountAttributesInput"},"RestoreAccountAttributesInput":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsRestoreAccountAttributesInput"},"azure":{"$ref":"#/components/schemas/AzureRestoreAccountAttributesInput"},"gcp":{"$ref":"#/components/schemas/GcpRestoreAccountAttributesInput"}},"required":["cloudProvider"],"title":"RestoreAccountAttributesInput"},"ConnectRestoreAccountRequest":{"type":"object","properties":{"name":{"type":"string","description":"Account display name in Eon."},"restoreAccountAttributes":{"$ref":"#/components/schemas/RestoreAccountAttributesInput","description":"Cloud-provider-specific configuration for the restore account.\n"}},"required":["restoreAccountAttributes"],"title":"ConnectRestoreAccountRequest"},"AwsRestoreAccountAttributes":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS."},"organizationId":{"type":"string","description":"Cloud-provider-assigned ID of the AWS organization the account belongs to."}},"required":["roleArn"],"description":"AWS account configuration.\nApplicable if `cloudProvider` is set to `AWS`.\n","title":"AwsRestoreAccountAttributes"},"GcpRestoreAccountAttributes":{"type":"object","properties":{"serviceAccount":{"type":"string"}},"required":["serviceAccount"],"description":"GCP project configuration.\nApplicable if `cloudProvider` is set to `GCP`.\n","title":"GcpRestoreAccountAttributes"},"AzureRestoreAccountAttributes":{"type":"object","properties":{"tenantId":{"type":"string","format":"uuid","description":"ID of the tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"ID of the Azure subscription."},"resourceGroupName":{"type":"string","description":"Name of the Azure resource group to scope permissions to.\nWhen provided, restoring is limited to this specific resource group.\nWhen omitted, permissions are scoped to the subscription.\n"},"eonInternalResourceGroupName":{"type":"string","description":"Name of the Eon internal resource group for temporary restore resources.\n"},"managementGroupId":{"type":"string","description":"ID of the Azure management group the restore account is scoped to."}},"required":["tenantId","subscriptionId"],"description":"Azure subscription configuration.\nApplicable if `cloudProvider` is set to `AZURE`.\n","title":"AzureRestoreAccountAttributes"},"RestoreAccountCloudAttributes":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsRestoreAccountAttributes"},"gcp":{"$ref":"#/components/schemas/GcpRestoreAccountAttributes"},"azure":{"$ref":"#/components/schemas/AzureRestoreAccountAttributes"}},"required":["cloudProvider"],"title":"RestoreAccountCloudAttributes"},"RestoreAccount":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned restore account ID."},"providerAccountId":{"type":"string","description":"Cloud-provider-assigned account ID."},"name":{"type":"string","description":"Account display name in Eon."},"providerAccountName":{"type":"string","description":"Display name inherited from the cloud provider."},"status":{"$ref":"#/components/schemas/AccountState","description":"Connection status of the AWS account, Azure subscription, or GCP project.\nOnly `CONNECTED` restore accounts can be restored to.\n\nFor an explanation of statuses, see [Restore Account Statuses](/data-protection/restoring/restore-accounts/restore-account-statuses).\n"},"version":{"$ref":"#/components/schemas/AccountVersion"},"connectedTime":{"type":"string","format":"date-time","description":"Date and time the account was connected to Eon."},"restoreAccountAttributes":{"$ref":"#/components/schemas/RestoreAccountCloudAttributes","description":"Cloud provider-specific configuration for the restore account.\n"},"isRestoreAllowed":{"type":"boolean","description":"Whether the current role's restore destination limits permit restoring to the restore account.\n"}},"required":["id","providerAccountId","name","status","restoreAccountAttributes","isRestoreAllowed"],"title":"RestoreAccount"},"ConnectRestoreAccountResponse":{"type":"object","properties":{"restoreAccount":{"$ref":"#/components/schemas/RestoreAccount","description":"Restore account."}},"required":["restoreAccount"],"title":"ConnectRestoreAccountResponse"},"GetRestoreAccountResponse":{"type":"object","properties":{"restoreAccount":{"$ref":"#/components/schemas/RestoreAccount","description":"Requested restore account."}},"required":["restoreAccount"],"title":"GetRestoreAccountResponse"},"RestoreAccountsFilterConditions":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/IdFilters","description":"Filters for the Eon-assigned account ID."},"providerAccountId":{"$ref":"#/components/schemas/ProviderAccountIdFilters","description":"Filters for the cloud-provider-assigned account ID."},"accountStatus":{"$ref":"#/components/schemas/AccountStatusFilters","description":"Filters for the account status."},"cloudProvider":{"$ref":"#/components/schemas/CloudProviderFilters","description":"Filters for the cloud provider."},"accountName":{"$ref":"#/components/schemas/AccountNameFilters","description":"Filters for the account name."}},"description":"Filter conditions.\nIf omitted, no filtering is applied.\n","title":"RestoreAccountsFilterConditions"},"RestoreAccountSortField":{"type":"string","enum":["accountName","installedVersion","createdAt"],"description":"Field to sort by.","title":"RestoreAccountSortField"},"SortRestoreAccountsBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/RestoreAccountSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortRestoreAccountsBy"},"ListRestoreAccountsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/RestoreAccountsFilterConditions"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortRestoreAccountsBy"}}},"title":"ListRestoreAccountsRequest"},"ListRestoreAccountsResponse":{"type":"object","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/RestoreAccount"},"description":"List of restore accounts."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of restore accounts that matched the filter options."}},"required":["accounts","totalCount"],"title":"ListRestoreAccountsResponse"},"UpdateAwsRestoreAccountAttributes":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the account in AWS.\nOnly the role name portion of the ARN can be changed.\nThe AWS account ID must remain the same.\n"}},"description":"Updatable AWS account fields.\n","title":"UpdateAwsRestoreAccountAttributes"},"UpdateGcpRestoreAccountAttributes":{"type":"object","properties":{"serviceAccount":{"type":"string","description":"Email of the service account Eon impersonates to access the GCP project.\nOnly the service account name portion can be changed.\nThe GCP project ID must remain the same.\n"}},"description":"Updatable GCP account fields.\n","title":"UpdateGcpRestoreAccountAttributes"},"UpdateRestoreAccountAttributesInput":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/UpdateAwsRestoreAccountAttributes"},"gcp":{"$ref":"#/components/schemas/UpdateGcpRestoreAccountAttributes"}},"description":"Cloud-provider-specific fields to update.\nOne of: `aws`, `gcp`.\n","title":"UpdateRestoreAccountAttributesInput"},"UpdateRestoreAccountRequest":{"type":"object","properties":{"name":{"type":"string","description":"Display name for the restore account in Eon."},"restoreAccountAttributes":{"$ref":"#/components/schemas/UpdateRestoreAccountAttributesInput"}},"title":"UpdateRestoreAccountRequest"},"UpdateRestoreAccountResponse":{"type":"object","properties":{"restoreAccount":{"$ref":"#/components/schemas/RestoreAccount","description":"Updated restore account."}},"required":["restoreAccount"],"title":"UpdateRestoreAccountResponse"},"DisconnectRestoreAccountResponse":{"type":"object","properties":{"restoreAccount":{"$ref":"#/components/schemas/RestoreAccount","description":"Disconnected restore account."}},"required":["restoreAccount"],"title":"DisconnectRestoreAccountResponse"},"ReconnectRestoreAccountResponse":{"type":"object","properties":{"restoreAccount":{"$ref":"#/components/schemas/RestoreAccount","description":"Reconnected restore account."}},"required":["restoreAccount"],"title":"ReconnectRestoreAccountResponse"},"accounts_DeleteRestoreAccountV1_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"accounts_DeleteRestoreAccountV1_Response_200"},"SubnetPerAvailabilityZone":{"type":"object","properties":{"availabilityZone":{"type":"string","description":"Availability zone."},"subnetId":{"type":"string","description":"Subnet ID to use."}},"required":["availabilityZone","subnetId"],"title":"SubnetPerAvailabilityZone"},"ResourceTypeToSecurityGroup":{"type":"object","properties":{"restoreServer":{"type":"array","items":{"type":"string"},"description":"Security group to use for the restore server.\nIf not specified, Eon attempts to use the default security group.\n\nCurrently, a single security group is supported.\n"},"restoredRdsInstance":{"type":"array","items":{"type":"string"},"description":"Security group to use for restored RDS instances.\nIf not specified, Eon attempts to use the default security group.\n\nCurrently, a single security group is supported.\n"}},"title":"ResourceTypeToSecurityGroup"},"AwsVpcConnectivityConfig":{"type":"object","properties":{"region":{"type":"string","description":"VPC region."},"vpc":{"type":"string","description":"VPC ID."},"subnetsPerAvailabilityZone":{"type":"array","items":{"$ref":"#/components/schemas/SubnetPerAvailabilityZone"},"description":"Subnets to configure for availability zones in the VPC.\nFor availability zones not specified in this list, Eon attempts to use the default subnet.\n"},"securityGroups":{"$ref":"#/components/schemas/ResourceTypeToSecurityGroup","description":"Security groups to use for the restore server and restored RDS instances."}},"required":["region","vpc"],"title":"AwsVpcConnectivityConfig"},"AwsRestoreAccountConnectivityConfig":{"type":"object","properties":{"vpcConfigs":{"type":"array","items":{"$ref":"#/components/schemas/AwsVpcConnectivityConfig"},"description":"VPCs to configure."}},"title":"AwsRestoreAccountConnectivityConfig"},"GcpSubnetPerRegion":{"type":"object","properties":{"region":{"type":"string","description":"Region."},"subnetName":{"type":"string","description":"Subnet name."}},"required":["region","subnetName"],"title":"GcpSubnetPerRegion"},"GcpNetworkConnectivityConfig":{"type":"object","properties":{"network":{"type":"string","description":"Network name."},"subnetsPerRegion":{"type":"array","items":{"$ref":"#/components/schemas/GcpSubnetPerRegion"},"description":"Subnets to configure for regions in the network.\nFor regions not specified in this list, Eon attempts to use the default subnet.\n"},"isSharedVpc":{"type":"boolean","description":"Indicates whether the VPC network is a shared VPC.\nIf true, `networkHostProject` must be specified.\n"},"networkHostProject":{"type":"string","description":"ID of the project that hosts the VPC network.\nApplicable for shared VPC network.\n"}},"required":["network","isSharedVpc","networkHostProject"],"title":"GcpNetworkConnectivityConfig"},"GcpRestoreAccountConnectivityConfig":{"type":"object","properties":{"networkConfigs":{"type":"array","items":{"$ref":"#/components/schemas/GcpNetworkConnectivityConfig"},"description":"Networks to configure."}},"title":"GcpRestoreAccountConnectivityConfig"},"ProviderRestoreAccountConnectivityConfig":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/AwsRestoreAccountConnectivityConfig","description":"Connectivity configuration for an AWS restore account."},"gcp":{"$ref":"#/components/schemas/GcpRestoreAccountConnectivityConfig","description":"Connectivity configuration for a GCP restore account."}},"title":"ProviderRestoreAccountConnectivityConfig"},"RestoreAccountConnectivityConfig":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"config":{"$ref":"#/components/schemas/ProviderRestoreAccountConnectivityConfig","description":"Configuration options."}},"required":["restoreAccountId","config"],"title":"RestoreAccountConnectivityConfig"},"GetRestoreAccountConnectivityConfigResponse":{"type":"object","properties":{"restoreAccountConfig":{"$ref":"#/components/schemas/RestoreAccountConnectivityConfig"}},"required":["restoreAccountConfig"],"title":"GetRestoreAccountConnectivityConfigResponse"},"UpdateRestoreAccountConnectivityConfigRequest":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/AwsRestoreAccountConnectivityConfig"},"gcp":{"$ref":"#/components/schemas/GcpRestoreAccountConnectivityConfig"}},"title":"UpdateRestoreAccountConnectivityConfigRequest"},"UpdateRestoreAccountConnectivityConfigResponse":{"type":"object","properties":{"restoreAccountConfig":{"$ref":"#/components/schemas/RestoreAccountConnectivityConfig"}},"required":["restoreAccountConfig"],"title":"UpdateRestoreAccountConnectivityConfigResponse"},"accounts_deleteRestoreAccountConnectivityConfig_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"accounts_deleteRestoreAccountConnectivityConfig_Response_200"},"ConnectRestoreAwsOrganizationalUnitRequest":{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the organizational unit in AWS."},"providerOrganizationalUnitId":{"type":"string","description":"AWS-assigned organizational unit ID."}},"required":["roleArn","providerOrganizationalUnitId"],"title":"ConnectRestoreAwsOrganizationalUnitRequest"},"RestoreAwsOrganizationalUnit":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned organizational unit ID."},"roleArn":{"type":"string","description":"ARN of the role Eon assumes to access the organizational unit in AWS."},"name":{"type":"string","description":"Organizational unit display name in Eon."},"providerOrganizationalUnitId":{"type":"string","description":"AWS-assigned organizational unit ID."},"providerManagementAccountId":{"type":"string","description":"AWS-assigned ID of the organization's management account."},"status":{"$ref":"#/components/schemas/AccountState","description":"Connection status of the organizational unit.\nOnly `CONNECTED` organizational units have their accounts available as restore destinations.\n"}},"required":["id","roleArn","name","providerOrganizationalUnitId","providerManagementAccountId","status"],"title":"RestoreAwsOrganizationalUnit"},"ConnectRestoreAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/RestoreAwsOrganizationalUnit","description":"The connected AWS organizational unit."}},"required":["organizationalUnit"],"title":"ConnectRestoreAwsOrganizationalUnitResponse"},"ListRestoreAwsOrganizationalUnitsResponse":{"type":"object","properties":{"organizationalUnits":{"type":"array","items":{"$ref":"#/components/schemas/RestoreAwsOrganizationalUnit"},"description":"List of AWS organizational units."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of AWS organizational units that matched the filter options."}},"required":["organizationalUnits","totalCount"],"title":"ListRestoreAwsOrganizationalUnitsResponse"},"DisconnectRestoreAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/RestoreAwsOrganizationalUnit","description":"The disconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"DisconnectRestoreAwsOrganizationalUnitResponse"},"ReconnectRestoreAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/RestoreAwsOrganizationalUnit","description":"The reconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"ReconnectRestoreAwsOrganizationalUnitResponse"},"RestoreAccountMetricsConfig":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned restore account ID."},"enabled":{"type":"boolean","description":"Indicates whether job metrics are enabled for the restore account.\nIf `true`, job metrics are collected and can be queried.\n"},"destination":{"$ref":"#/components/schemas/AccountMetricsDestination","description":"Metrics destination settings."}},"required":["restoreAccountId","enabled","destination"],"title":"RestoreAccountMetricsConfig"},"GetRestoreAccountMetricsConfigResponse":{"type":"object","properties":{"restoreAccountConfig":{"$ref":"#/components/schemas/RestoreAccountMetricsConfig"}},"required":["restoreAccountConfig"],"title":"GetRestoreAccountMetricsConfigResponse"},"EnableRestoreAccountMetricsConfigRequest":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/AwsAccountMetricsDestination","description":"Metrics configuration for an AWS restore account."}},"title":"EnableRestoreAccountMetricsConfigRequest"},"EnableRestoreAccountMetricsConfigResponse":{"type":"object","properties":{"restoreAccountConfig":{"$ref":"#/components/schemas/RestoreAccountMetricsConfig"}},"required":["restoreAccountConfig"],"title":"EnableRestoreAccountMetricsConfigResponse"},"accounts_disableRestoreAccountMetricsConfig_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"accounts_disableRestoreAccountMetricsConfig_Response_200"},"InventoryDetail":{"type":"string","enum":["DYNAMODB_INDEXES"],"title":"InventoryDetail"},"BackupStatus":{"type":"string","enum":["BACKUP_POSTURE_STATUS_UNSPECIFIED","NOT_BACKED_UP","VIOLATIONS_DETECTED","GENERIC_BACKUPS","EXCLUDED_FROM_BACKUP","ALL_VIOLATIONS_MUTED","PROTECTED","INITIAL_CLASSIFICATION","TERMINATED","UNSUPPORTED","DISCONNECTED","ACTION_REQUIRED"],"description":"Eon backup status.\nFor an explanation of statuses, see [Backup Statuses](/data-protection/backup-and-protection/backup-management/backup-statuses).\n`BACKUP_POSTURE_STATUS_UNSPECIFIED` is supported only in responses.\n","title":"BackupStatus"},"DataClassesDetails":{"type":"object","properties":{"dataClasses":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"List of data classes."},"isOverridden":{"type":"boolean","description":"Whether the data classes are manually overridden.\nIf `true`, the list of data classes is user-defined and remains static.\nIf `false`, the data classes are automatically detected and listed by Eon.\n"}},"description":"Details about the resource's data classes.","title":"DataClassesDetails"},"EnvironmentDetails":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/Environment"},"isOverridden":{"type":"boolean","description":"Whether the environment is manually overridden.\nIf `true`, the environment is user-defined and remains static.\nIf `false`, the environment is automatically detected and set by Eon.\n"}},"description":"Details about the resource's environment.","title":"EnvironmentDetails"},"App":{"type":"object","properties":{"name":{"type":"string","description":"App display name.\nFor a list of supported apps, see [Apps](/data-protection/backup-and-protection/backup-management/classifications/resource-classifications#apps).\n"},"paths":{"type":"array","items":{"type":"string"},"description":"List of paths where the app was found."}},"required":["name"],"title":"App"},"Apps":{"type":"array","items":{"$ref":"#/components/schemas/App"},"description":"List of app details.","title":"Apps"},"AppsDetails":{"type":"object","properties":{"apps":{"$ref":"#/components/schemas/Apps"},"isOverridden":{"type":"boolean","description":"Whether the apps are manually overridden.\nIf `true`, the list of apps is user-defined and remains static.\nIf `false`, the apps are automatically detected and listed by Eon.\n"}},"description":"Details about apps installed on the resource.","title":"AppsDetails"},"Classifications":{"type":"object","properties":{"dataClassesDetails":{"$ref":"#/components/schemas/DataClassesDetails"},"environmentDetails":{"$ref":"#/components/schemas/EnvironmentDetails"},"appsDetails":{"$ref":"#/components/schemas/AppsDetails"}},"description":"Resource classification details.","title":"Classifications"},"SnapshotStorage":{"type":"object","properties":{"sizeBytes":{"type":"integer","format":"int64","description":"Total size of the resource's Eon snapshots, in bytes."},"eonSnapshotCount":{"type":"integer","description":"Number of Eon snapshots backing up the resource."},"nonEonSnapshotCount":{"type":"integer","description":"Number of non-Eon snapshots backing up the resource.\nOnly cloud-provider-native snapshots in the source account are included in this count.\n"}},"description":"Details about backup snapshot storage.","title":"SnapshotStorage"},"SourceStorage":{"type":"object","properties":{"sizeBytes":{"type":"integer","format":"int64","description":"Total storage size at the source, in bytes."}},"description":"Details about storage at the source.","title":"SourceStorage"},"ControlViolations":{"type":"object","properties":{"high":{"type":"integer","description":"Number of high-severity control violations."},"medium":{"type":"integer","description":"Number of medium-severity control violations."},"low":{"type":"integer","description":"Number of low-severity control violations."},"muted":{"type":"integer","description":"Number of muted control violations."}},"required":["high","medium","low","muted"],"title":"ControlViolations"},"VolumeSettings":{"type":"object","properties":{"type":{"type":"string","description":"Volume type."},"sizeBytes":{"type":"integer","format":"int64","description":"Volume size in bytes."},"iops":{"type":"integer","description":"Volume IOPS."},"throughput":{"type":"integer","description":"Volume throughput."}},"required":["type","sizeBytes"],"description":"Provisioned volume settings.","title":"VolumeSettings"},"InventoryVolume":{"type":"object","properties":{"providerVolumeId":{"type":"string","description":"The volume's cloud-provider-assigned resource ID."},"path":{"type":"string","description":"Path of the volume on the machine it's attached to."},"region":{"type":"string","description":"Region the volume is hosted in."},"encryptionKeyId":{"type":"string","description":"ID of the encryption key used to encrypt the volume."},"isAwsManagedKey":{"type":"boolean","description":"Whether the encryption key is an AWS-managed KMS key.\nIf `true`, the key is AWS-managed.\nIf `false`, the key is customer-managed.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Volume tags as key-value pairs.\nBoth keys and values are strings.\nIf a tag is a key with no value, the value is presented as an empty string.\n\n**Example:** `{\"primary\": \"\"}`\n"},"availabilityZone":{"type":"string","description":"Volume availability zone."},"volumeSettings":{"$ref":"#/components/schemas/VolumeSettings"}},"required":["providerVolumeId","path","region","tags","availabilityZone","volumeSettings"],"title":"InventoryVolume"},"AwsEc2Resource":{"type":"object","properties":{"volumes":{"type":"array","items":{"$ref":"#/components/schemas/InventoryVolume"},"description":"List of volumes attached to the resource."}},"description":"Properties of the original AWS EC2 instance.\nPresent only when `resourceType` is set to `AWS_EC2`.\n","title":"AwsEc2Resource"},"DynamoDbBillingMode":{"type":"string","enum":["UNSPECIFIED","PAY_PER_REQUEST","PROVISIONED"],"description":"DynamoDB billing mode.\n","title":"DynamoDbBillingMode"},"DynamoDbKeyType":{"type":"string","enum":["HASH","RANGE"],"description":"Role of an attribute in a DynamoDB key schema.\n","title":"DynamoDbKeyType"},"DynamoDbIndexKeySchemaElement":{"type":"object","properties":{"name":{"type":"string","description":"Name of the key attribute."},"type":{"$ref":"#/components/schemas/DynamoDbKeyType"}},"description":"Element of a DynamoDB index key schema.","title":"DynamoDbIndexKeySchemaElement"},"DynamoDbProjectionType":{"type":"string","enum":["ALL","KEYS_ONLY","INCLUDE"],"description":"Set of attributes projected from a DynamoDB table into an index.\n","title":"DynamoDbProjectionType"},"DynamoDbIndexProjection":{"type":"object","properties":{"projectionType":{"$ref":"#/components/schemas/DynamoDbProjectionType"},"nonKeyAttributes":{"type":"array","items":{"type":"string"},"description":"Non-key attribute names projected into the index."}},"description":"Attributes that are copied (projected) from the table into a DynamoDB index.","title":"DynamoDbIndexProjection"},"DynamoDbIndexThroughput":{"type":"object","properties":{"readCapacityUnits":{"type":["integer","null"],"format":"int64","description":"Maximum number of strongly consistent reads consumed per second before DynamoDB returns a ThrottlingException."},"writeCapacityUnits":{"type":["integer","null"],"format":"int64","description":"Maximum number of writes consumed per second before DynamoDB returns a ThrottlingException."}},"description":"Throughput settings of a DynamoDB index.","title":"DynamoDbIndexThroughput"},"DynamoDbGlobalSecondaryIndex":{"type":"object","properties":{"indexName":{"type":"string","description":"Name of the global secondary index."},"keySchema":{"type":"array","items":{"$ref":"#/components/schemas/DynamoDbIndexKeySchemaElement"},"description":"Complete key schema for the global secondary index."},"projection":{"$ref":"#/components/schemas/DynamoDbIndexProjection"},"onDemandThroughput":{"$ref":"#/components/schemas/DynamoDbIndexThroughput"},"provisionedThroughput":{"$ref":"#/components/schemas/DynamoDbIndexThroughput"},"warmThroughput":{"$ref":"#/components/schemas/DynamoDbIndexThroughput"},"indexSizeBytes":{"type":["integer","null"],"format":"int64","description":"Total size of the index, in bytes."}},"description":"Global secondary index of a DynamoDB table.","title":"DynamoDbGlobalSecondaryIndex"},"DynamoDbLocalSecondaryIndex":{"type":"object","properties":{"indexName":{"type":"string","description":"Name of the local secondary index."},"keySchema":{"type":"array","items":{"$ref":"#/components/schemas/DynamoDbIndexKeySchemaElement"},"description":"Complete key schema for the local secondary index."},"projection":{"$ref":"#/components/schemas/DynamoDbIndexProjection"},"indexSizeBytes":{"type":["integer","null"],"format":"int64","description":"Total size of the index, in bytes."}},"description":"Local secondary index of a DynamoDB table.","title":"DynamoDbLocalSecondaryIndex"},"AwsDynamoDbResource":{"type":"object","properties":{"billingMode":{"$ref":"#/components/schemas/DynamoDbBillingMode"},"readCapacityUnits":{"type":"integer","format":"int64","description":"Provisioned read capacity units of the table."},"writeCapacityUnits":{"type":"integer","format":"int64","description":"Provisioned write capacity units of the table."},"globalSecondaryIndexes":{"type":"array","items":{"$ref":"#/components/schemas/DynamoDbGlobalSecondaryIndex"},"description":"Global secondary indexes on the table.\nTo minimize response size, not returned by default.\n\nTo include in the response, set `include` to `DYNAMODB_INDEXES` in the request.\n"},"localSecondaryIndexes":{"type":"array","items":{"$ref":"#/components/schemas/DynamoDbLocalSecondaryIndex"},"description":"Local secondary indexes on the table.\nTo minimize response size, not returned by default.\n\nTo include in the response, set `include` to `DYNAMODB_INDEXES` in the request.\n"}},"required":["billingMode","readCapacityUnits","writeCapacityUnits"],"title":"AwsDynamoDbResource"},"ResourceProperties":{"type":"object","properties":{"awsEc2":{"$ref":"#/components/schemas/AwsEc2Resource"},"awsDynamoDb":{"$ref":"#/components/schemas/AwsDynamoDbResource"}},"description":"Source resource properties.\nThe properties present in this object change depending on the value set in `resourceType`.\n","title":"ResourceProperties"},"InventoryResource":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned resource ID."},"createdTime":{"type":"string","format":"date-time","description":"Date and time the resource record was created in Eon."},"discoveredTime":{"type":"string","format":"date-time","description":"Date and time the resource was first discovered."},"latestSnapshotTime":{"type":"string","format":"date-time","description":"Date and time of the resource's latest Eon snapshot."},"oldestSnapshotTime":{"type":"string","format":"date-time","description":"Date and time of the resource's first Eon snapshot."},"backupStatus":{"$ref":"#/components/schemas/BackupStatus"},"providerResourceId":{"type":"string","description":"Cloud-provider-assigned resource ID."},"resourceName":{"type":"string","description":"Resource display name."},"classifications":{"$ref":"#/components/schemas/Classifications"},"providerAccountId":{"type":"string","description":"Cloud-provider-assigned account ID."},"snapshotStorage":{"$ref":"#/components/schemas/SnapshotStorage"},"sourceStorage":{"$ref":"#/components/schemas/SourceStorage"},"controlViolationCounts":{"$ref":"#/components/schemas/ControlViolations","description":"Counts of the resource's control violations."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags as key-value pairs.\nBoth keys and values are strings.\nIf a tag is a key with no value, the value is presented as an empty string.\n\n**Example:** `{\"env\": \"prod\", \"app\": \"web\"}`\n"},"cloudProvider":{"$ref":"#/components/schemas/Provider"},"resourceType":{"$ref":"#/components/schemas/ResourceType"},"region":{"type":"string","description":"Region the resource is hosted in."},"vpc":{"type":"string","description":"VPC the resource is in."},"subnets":{"type":"array","items":{"type":"string"},"description":"List of subnets the resource belongs to."},"resourceProperties":{"$ref":"#/components/schemas/ResourceProperties"}},"required":["id","backupStatus","providerResourceId","resourceName","providerAccountId","snapshotStorage","sourceStorage","tags","cloudProvider","resourceType","region"],"title":"InventoryResource"},"GetResourceResponse":{"type":"object","properties":{"resource":{"$ref":"#/components/schemas/InventoryResource"}},"required":["resource"],"title":"GetResourceResponse"},"ResourceSortField":{"type":"string","enum":["resourceName","latestSnapshotTime","oldestSnapshotTime","dateDiscovered","createdTime","resourceGroupName","clusterName","globalClusterIdentifier"],"description":"Field to sort by.","title":"ResourceSortField"},"SortResourceBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/ResourceSortField"},"order":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.\nUse `ASC` for ascending order and `DESC` for descending order.\n"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortResourceBy"},"ResourceIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `providerResourceId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `providerResourceId`."}},"title":"ResourceIdFilters"},"ResourceNameFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `resourceName`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `resourceName`."},"contains":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list is a substring of `resourceName`."},"notContains":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list is a substring of `resourceName`."}},"title":"ResourceNameFilters"},"ResourceTypeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/ResourceType"},"description":"Matches if any value in this list equals `resourceType`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/ResourceType"},"description":"Matches if no value in this list equals `resourceType`."}},"title":"ResourceTypeFilters"},"EnvironmentFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/Environment"},"description":"Matches if any value in this list equals `environment`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/Environment"},"description":"Matches if no value in this list equals `environment`."}},"title":"EnvironmentFilters"},"AccountIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list equals `accountId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list equal `accountId`."}},"title":"AccountIdFilters"},"AppFilters":{"type":"object","properties":{"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list is in the `apps` list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list are in the `apps` list."},"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if all values in this list are in the `apps` list."}},"title":"AppFilters"},"SubnetFilters":{"type":"object","properties":{"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list is in the `subnets` list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list are in the `subnets` list."},"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if all values in this list are in the `subnets` list."}},"title":"SubnetFilters"},"DataClassesFilters":{"type":"object","properties":{"containsAnyOf":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"Matches if any value in this list is in the `dataClasses` list."},"containsNoneOf":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"Matches if none of the values in this list are in the `dataClasses` list."},"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if all values in this list are in the `dataClasses` list."}},"title":"DataClassesFilters"},"BackupStatusFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/BackupStatus"},"description":"Matches if any value in this list equals `backupStatus`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/BackupStatus"},"description":"Matches if no value in this list equals `backupStatus`."}},"title":"BackupStatusFilters"},"TagKeysFilters":{"type":"object","properties":{"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if any key in this list is in the `tags` keys list."},"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the keys in this list are in the `tags` keys list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if all keys in this list are in the `tags` keys list."}},"title":"TagKeysFilters"},"TagKeyValuesFilters":{"type":"object","properties":{"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if any `{key}={value}` pair in this list is in the `tags` list."},"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the `{key}={value}` pairs in this list are in the `tags` list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if all `{key}={value}` pairs in this list are in the `tags` list."}},"title":"TagKeyValuesFilters"},"InventoryFilterConditions":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/IdFilters","description":"Filters for the Eon-assigned resource ID."},"cloudProvider":{"$ref":"#/components/schemas/CloudProviderFilters","description":"Filters for the source cloud provider."},"providerResourceId":{"$ref":"#/components/schemas/ResourceIdFilters","description":"Filters for the cloud-provider-assigned resource ID."},"resourceName":{"$ref":"#/components/schemas/ResourceNameFilters","description":"Filters for resource name."},"resourceType":{"$ref":"#/components/schemas/ResourceTypeFilters","description":"Filters for resource type."},"environment":{"$ref":"#/components/schemas/EnvironmentFilters","description":"Filters for resource environment."},"accountId":{"$ref":"#/components/schemas/AccountIdFilters","description":"Filters for the cloud-provider-assigned source account ID."},"apps":{"$ref":"#/components/schemas/AppFilters","description":"Filters for apps installed on a resource.\nFor a list of possible values, see [Apps](/data-protection/backup-and-protection/backup-management/classifications/resource-classifications#apps).\n"},"subnets":{"$ref":"#/components/schemas/SubnetFilters","description":"Filters for resource subnets."},"dataClasses":{"$ref":"#/components/schemas/DataClassesFilters","description":"Filters for resource data classes."},"backupStatus":{"$ref":"#/components/schemas/BackupStatusFilters","description":"Filters for resource backup status."},"tagKeys":{"$ref":"#/components/schemas/TagKeysFilters","description":"Filters for resource tags by key."},"tagKeyValues":{"$ref":"#/components/schemas/TagKeyValuesFilters","description":"Filters for resource tags by key-value pair."}},"title":"InventoryFilterConditions"},"ListInventoryRequest":{"type":"object","properties":{"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortResourceBy"},"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n"},"filters":{"$ref":"#/components/schemas/InventoryFilterConditions","description":"Filter conditions.\nIf omitted, no filtering is applied.\n"}},"title":"ListInventoryRequest"},"ListResourcesResponse":{"type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/InventoryResource"},"description":"List of retrieved resources."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of resources that matched the filter options."}},"required":["resources","totalCount"],"title":"ListResourcesResponse"},"OverrideDataClassificationsRequest":{"type":"object","properties":{"dataClasses":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"List of data classes to set."}},"title":"OverrideDataClassificationsRequest"},"OverrideDataClassificationsResponse":{"type":"object","properties":{"dataClasses":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"List of data classes that were overridden."}},"title":"OverrideDataClassificationsResponse"},"OverrideEnvironmentRequest":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/Environment"}},"title":"OverrideEnvironmentRequest"},"OverrideEnvironmentResponse":{"type":"object","properties":{"environment":{"$ref":"#/components/schemas/Environment"}},"title":"OverrideEnvironmentResponse"},"ExcludeFromBackupResponse":{"type":"object","properties":{"isExcluded":{"type":"boolean","description":"Whether the resource is excluded from backup.\nExpected to be `true`.\n"}},"required":["isExcluded"],"title":"ExcludeFromBackupResponse"},"CancelExclusionFromBackupResponse":{"type":"object","properties":{"isExclusionCanceled":{"type":"boolean","description":"Whether the call was successful.\nExpected to be `true`.\n"}},"required":["isExclusionCanceled"],"title":"CancelExclusionFromBackupResponse"},"AwsVaultConfigInput":{"type":"object","properties":{"encryptionKey":{"type":"string","description":"ARN of the KMS key used for encryption.\nOmitted if the key is managed by Eon.\n"}},"description":"AWS-specific vault configuration.\n","title":"AwsVaultConfigInput"},"VaultProviderAttributesInput":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsVaultConfigInput"}},"required":["cloudProvider"],"description":"Cloud-provider-specific vault attributes.\n","title":"VaultProviderAttributesInput"},"CreateVaultRequest":{"type":"object","properties":{"name":{"type":"string","description":"Vault display name."},"region":{"type":"string","description":"Region where the vault is hosted."},"vaultAttributes":{"$ref":"#/components/schemas/VaultProviderAttributesInput"}},"required":["name","region","vaultAttributes"],"title":"CreateVaultRequest"},"AwsVaultConfig":{"type":"object","properties":{"encryptionKey":{"type":"string","description":"ARN of the KMS key used for encryption.\nOmitted if the key is managed by Eon.\n"}},"description":"AWS-specific vault configuration.\n","title":"AwsVaultConfig"},"VaultProviderAttributes":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider"},"aws":{"$ref":"#/components/schemas/AwsVaultConfig"}},"required":["cloudProvider"],"description":"Cloud-provider-specific vault attributes.\n","title":"VaultProviderAttributes"},"BackupVault":{"type":"object","properties":{"id":{"type":"string","description":"Vault ID."},"vaultAccountId":{"type":"string","description":"Eon-assigned ID of the vault account."},"providerAccountId":{"type":"string","description":"Cloud provider-assigned ID of the vault account."},"name":{"type":"string","description":"Vault display name."},"region":{"type":"string","description":"Region where the vault is located."},"isManagedByEon":{"type":"boolean","description":"Whether the vault is in an Eon-managed vault account."},"vaultAttributes":{"$ref":"#/components/schemas/VaultProviderAttributes"}},"required":["id","vaultAccountId","providerAccountId","name","region","isManagedByEon","vaultAttributes"],"title":"BackupVault"},"CreateVaultResponse":{"type":"object","properties":{"vault":{"$ref":"#/components/schemas/BackupVault"}},"required":["vault"],"title":"CreateVaultResponse"},"CreateVaultRequestConflictError":{"type":"object","properties":{"error":{"type":"string"}},"title":"CreateVaultRequestConflictError"},"GetVaultResponse":{"type":"object","properties":{"vault":{"$ref":"#/components/schemas/BackupVault"}},"required":["vault"],"title":"GetVaultResponse"},"ListBackupVaultResponse":{"type":"object","properties":{"vaults":{"type":"array","items":{"$ref":"#/components/schemas/BackupVault"}},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of restore jobs that matched the filter options."}},"required":["vaults","totalCount"],"title":"ListBackupVaultResponse"},"UpdateVaultRequest":{"type":"object","properties":{"name":{"type":"string","description":"Vault display name."}},"required":["name"],"title":"UpdateVaultRequest"},"UpdateVaultResponse":{"type":"object","properties":{"vault":{"$ref":"#/components/schemas/BackupVault"}},"required":["vault"],"title":"UpdateVaultResponse"},"TakeSnapshotRequest":{"type":"object","properties":{"vaultId":{"type":"string","description":"Eon-assigned ID of the vault to store the snapshot in.\n"},"retentionDays":{"type":"integer","description":"Number of days to retain the snapshot."}},"required":["vaultId","retentionDays"],"title":"TakeSnapshotRequest"},"TakeSnapshotResponse":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid","description":"Backup job ID."}},"required":["jobId"],"title":"TakeSnapshotResponse"},"ResourceSelectorMode":{"type":"string","enum":["ALL","NONE","CONDITIONAL"],"title":"ResourceSelectorMode"},"BackupPolicyGroupCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/LogicalOperator"},"operands":{"type":"array","items":{"$ref":"#/components/schemas/BackupPolicyExpression"},"description":"List of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the list can be either a single expression or a nested `group` expression.\n\nMust contain at least 2 items.\n"}},"required":["operator","operands"],"description":"Group of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the `operands` list can be either a single expression or a nested `group` expression.\n","title":"BackupPolicyGroupCondition"},"SourceAccountTagKeysCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"sourceAccountTagKeys":{"type":"array","items":{"type":"string"}}},"required":["operator","sourceAccountTagKeys"],"description":"Matches resources by the tag keys of the cloud account they belong to, rather than the resource's own tags.","title":"SourceAccountTagKeysCondition"},"SourceAccountTagKeyValuesCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"sourceAccountTagKeyValues":{"type":"array","items":{"$ref":"#/components/schemas/TagKeyValue"}}},"required":["operator","sourceAccountTagKeyValues"],"description":"Matches resources by the tag key/value pairs of the cloud account they belong to, rather than the resource's own tags.","title":"SourceAccountTagKeyValuesCondition"},"GlobalClusterIdentifierCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"globalClusterIdentifier":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9-]+$","maxLength":255}}},"required":["operator","globalClusterIdentifier"],"title":"GlobalClusterIdentifierCondition"},"BackupPolicyExpression":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/BackupPolicyGroupCondition"},"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"},"sourceAccountTagKeys":{"$ref":"#/components/schemas/SourceAccountTagKeysCondition"},"sourceAccountTagKeyValues":{"$ref":"#/components/schemas/SourceAccountTagKeyValuesCondition"},"globalClusterIdentifier":{"$ref":"#/components/schemas/GlobalClusterIdentifierCondition"}},"description":"Conditional expression to evaulate to determine which resources are to included in the backup policy.\nUsed only when `resourceSelectionMode` is `CONDITIONAL`.\n\nOnly one of the expressions below can be used.\nFor multiple conditions using `AND` or `OR` logic, group expressions with `group`.\nYou can nest multiple groups to create more complex expressions.\n","title":"BackupPolicyExpression"},"BackupPolicyResourceSelector":{"type":"object","properties":{"resourceSelectionMode":{"$ref":"#/components/schemas/ResourceSelectorMode","description":"Mode that determines how resources are selected for inclusion in the backup policy.\nTo include or exclude all resources from the policy, set to `ALL` or `NONE`, respectively.\nFor conditional selection, set to `CONDITIONAL` and provide conditions in `expression`.\n"},"expression":{"$ref":"#/components/schemas/BackupPolicyExpression"},"resourceInclusionOverride":{"type":"array","items":{"type":"string"},"description":"List of cloud-provider-assigned resource IDs to include in the backup policy, regardless of whether they're excluded by `resourceSelectionMode` and `expression`.\n"},"resourceExclusionOverride":{"type":"array","items":{"type":"string"},"description":"List of cloud-provider-assigned resource IDs to exclude from the backup policy, regardless of whether they're included by `resourceSelectionMode` and `expression`.\n"}},"required":["resourceSelectionMode"],"title":"BackupPolicyResourceSelector"},"BackupPolicyType":{"type":"string","enum":["UNSPECIFIED","STANDARD","AWS_NATIVE_STANDARD","HIGH_FREQUENCY","PITR","AWS_NATIVE_PITR"],"description":"Backup policy type.\n`UNSPECIFIED` is supported only in responses.\n","title":"BackupPolicyType"},"StandardBackupScheduleFrequency":{"type":"string","enum":["INTERVAL","DAILY","WEEKLY","MONTHLY","ANNUALLY","UNSPECIFIED"],"description":"Backup frequency.\n`UNSPECIFIED` is supported only in responses.\n","title":"StandardBackupScheduleFrequency"},"StandardIntervalConfigIntervalHours":{"type":"string","enum":["6","8","12"],"description":"Backup frequency, in hours.\n","title":"StandardIntervalConfigIntervalHours"},"StandardIntervalConfig":{"type":"object","properties":{"intervalHours":{"$ref":"#/components/schemas/StandardIntervalConfigIntervalHours","description":"Backup frequency, in hours.\n"}},"required":["intervalHours"],"title":"StandardIntervalConfig"},"TimeOfDay":{"type":"object","properties":{"hour":{"type":"integer","minimum":0,"maximum":23,"default":0,"description":"Hour of the day."},"minute":{"type":"integer","minimum":0,"maximum":59,"default":0,"description":"Minute of the hour."}},"required":["hour","minute"],"title":"TimeOfDay"},"DailyConfig":{"type":"object","properties":{"timeOfDay":{"$ref":"#/components/schemas/TimeOfDay","description":"Scheduled start time."},"startWindowMinutes":{"type":"integer","minimum":240,"maximum":1320,"default":240,"description":"The window of time after the start time you want the backup to start, in minutes.\nDefaults to `240` (4 hours).\n"}},"title":"DailyConfig"},"DayOfWeek":{"type":"string","enum":["MON","TUE","WED","THU","FRI","SAT","SUN"],"title":"DayOfWeek"},"WeeklyConfig":{"type":"object","properties":{"daysOfWeek":{"type":"array","items":{"$ref":"#/components/schemas/DayOfWeek"},"description":"Days of the week to schedule backups.\n"},"timeOfDay":{"$ref":"#/components/schemas/TimeOfDay","description":"Scheduled start time."},"startWindowMinutes":{"type":"integer","minimum":240,"maximum":1320,"default":240,"description":"The window of time after the start time you want the backup to start, in minutes.\nDefaults to `240` (4 hours).\n"}},"required":["daysOfWeek","timeOfDay"],"title":"WeeklyConfig"},"MonthlyConfig":{"type":"object","properties":{"daysOfMonth":{"type":"array","items":{"type":"integer","minimum":1,"maximum":28},"description":"Days of the month to schedule backups.\n"},"timeOfDay":{"$ref":"#/components/schemas/TimeOfDay","description":"Scheduled start time."},"startWindowMinutes":{"type":"integer","minimum":240,"maximum":1320,"default":240,"description":"The window of time after the start time you want the backup to start, in minutes.\nDefaults to `240` (4 hours).\n"}},"title":"MonthlyConfig"},"TimeOfYear":{"type":"object","properties":{"month":{"type":"integer","minimum":1,"maximum":12,"default":1},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31,"default":1}},"required":["month","dayOfMonth"],"title":"TimeOfYear"},"AnnuallyConfig":{"type":"object","properties":{"timeOfDay":{"$ref":"#/components/schemas/TimeOfDay","description":"Scheduled start time."},"timeOfYear":{"$ref":"#/components/schemas/TimeOfYear","description":"Date of the year to schedule backups.\n"},"startWindowMinutes":{"type":"integer","minimum":240,"maximum":1320,"default":240,"description":"The window of time after the start time you want the backup to start, in minutes.\nDefaults to `240` (4 hours).\n"}},"title":"AnnuallyConfig"},"StandardBackupScheduleConfig":{"type":"object","properties":{"frequency":{"$ref":"#/components/schemas/StandardBackupScheduleFrequency"},"intervalConfig":{"$ref":"#/components/schemas/StandardIntervalConfig","description":"Hourly backup configuration.\nUsed only when `frequency` is `INTERVAL`.\n"},"dailyConfig":{"$ref":"#/components/schemas/DailyConfig","description":"Daily backup configuration.\nUsed only when `frequency` is `DAILY`.\n"},"weeklyConfig":{"$ref":"#/components/schemas/WeeklyConfig","description":"Weekly backup configuration.\nUsed only when `frequency` is `WEEKLY`.\n"},"monthlyConfig":{"$ref":"#/components/schemas/MonthlyConfig","description":"Monthly backup configuration.\nUsed only when `frequency` is `MONTHLY`.\n"},"annuallyConfig":{"$ref":"#/components/schemas/AnnuallyConfig","description":"Annual backup configuration.\nUsed only when `frequency` is `ANNUALLY`.\n"}},"required":["frequency"],"title":"StandardBackupScheduleConfig"},"StandardBackupSchedules":{"type":"object","properties":{"vaultId":{"type":"string","format":"uuid","description":"Vault ID."},"scheduleConfig":{"$ref":"#/components/schemas/StandardBackupScheduleConfig","description":"Frequency configuration options."},"backupRetentionDays":{"type":"integer","description":"Backup retention period, in days."}},"required":["vaultId","scheduleConfig","backupRetentionDays"],"title":"StandardBackupSchedules"},"ScheduleTimezone":{"type":"string","enum":["UTC","RESOURCE"],"default":"UTC","description":"Time zone of the backup schedule windows.\n`UTC` runs the windows at a fixed UTC hour, whereas `RESOURCE` runs them at the same local hour in each resource's own region time zone.\n","title":"ScheduleTimezone"},"StandardBackupPolicyPlan":{"type":"object","properties":{"backupSchedules":{"type":"array","items":{"$ref":"#/components/schemas/StandardBackupSchedules"},"description":"List of backup schedules.\nEach schedule specifies a backup frequency, retention period, and vault.\n"},"scheduleTimezone":{"$ref":"#/components/schemas/ScheduleTimezone","default":"UTC","description":"Time zone used in backup schedules."}},"required":["backupSchedules"],"title":"StandardBackupPolicyPlan"},"HighFrequencyBackupResourceTypeResourceType":{"type":"string","enum":["AWS_S3","AWS_DYNAMO_DB","GCP_CLOUD_STORAGE_BUCKET","AWS_EC2","AWS_RDS","RESOURCE_TYPE_UNSPECIFIED"],"description":"Resource type identifier combining cloud provider and service type.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"HighFrequencyBackupResourceTypeResourceType"},"HighFrequencyBackupResourceType":{"type":"object","properties":{"resourceType":{"$ref":"#/components/schemas/HighFrequencyBackupResourceTypeResourceType","description":"Resource type identifier combining cloud provider and service type.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n"}},"title":"HighFrequencyBackupResourceType"},"HighFrequencyBackupScheduleFrequency":{"type":"string","enum":["INTERVAL","DAILY","WEEKLY","MONTHLY","ANNUALLY","UNSPECIFIED"],"description":"Backup frequency.\n`UNSPECIFIED` is supported only in responses.\n","title":"HighFrequencyBackupScheduleFrequency"},"HighFrequencyIntervalConfigIntervalMinutes":{"type":"string","enum":["15","30","60","120","180","240","360","480","720"],"title":"HighFrequencyIntervalConfigIntervalMinutes"},"HighFrequencyIntervalConfig":{"type":"object","properties":{"intervalMinutes":{"$ref":"#/components/schemas/HighFrequencyIntervalConfigIntervalMinutes"}},"required":["intervalMinutes"],"title":"HighFrequencyIntervalConfig"},"HighFrequencyBackupScheduleConfig":{"type":"object","properties":{"frequency":{"$ref":"#/components/schemas/HighFrequencyBackupScheduleFrequency"},"intervalConfig":{"$ref":"#/components/schemas/HighFrequencyIntervalConfig"},"dailyConfig":{"$ref":"#/components/schemas/DailyConfig"},"weeklyConfig":{"$ref":"#/components/schemas/WeeklyConfig"},"monthlyConfig":{"$ref":"#/components/schemas/MonthlyConfig"},"annuallyConfig":{"$ref":"#/components/schemas/AnnuallyConfig"}},"title":"HighFrequencyBackupScheduleConfig"},"HighFrequencyBackupSchedules":{"type":"object","properties":{"vaultId":{"type":"string","format":"uuid","description":"Vault ID."},"scheduleConfig":{"$ref":"#/components/schemas/HighFrequencyBackupScheduleConfig","description":"Frequency configuration options."},"backupRetentionDays":{"type":"integer","description":"Backup retention period, in days."}},"required":["vaultId","scheduleConfig","backupRetentionDays"],"title":"HighFrequencyBackupSchedules"},"HighFrequencyBackupPolicyPlan":{"type":"object","properties":{"resourceTypes":{"type":"array","items":{"$ref":"#/components/schemas/HighFrequencyBackupResourceType"},"description":"Resource types to backup."},"backupSchedules":{"type":"array","items":{"$ref":"#/components/schemas/HighFrequencyBackupSchedules"},"description":"List of backup schedules.\nEach schedule specifies a backup frequency, retention period, and vault.\n"},"scheduleTimezone":{"$ref":"#/components/schemas/ScheduleTimezone","default":"UTC","description":"Time zone used in backup schedules."}},"required":["resourceTypes","backupSchedules"],"title":"HighFrequencyBackupPolicyPlan"},"AwsNativePitrBackupResourceTypeResourceType":{"type":"string","enum":["AWS_RDS","RESOURCE_TYPE_UNSPECIFIED"],"description":"Resource type identifier combining cloud provider and service type.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"AwsNativePitrBackupResourceTypeResourceType"},"AwsNativePitrBackupResourceType":{"type":"object","properties":{"resourceType":{"$ref":"#/components/schemas/AwsNativePitrBackupResourceTypeResourceType","description":"Resource type identifier combining cloud provider and service type.\n`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n"}},"title":"AwsNativePitrBackupResourceType"},"AwsNativePitrBackupPolicyPlan":{"type":"object","properties":{"retentionDays":{"type":"integer","minimum":1,"maximum":35,"description":"Number of days to retain continuous backups with AWS Backup.\nAWS allows 1 to 35 days for RDS and Aurora continuous backups.\n"},"resourceType":{"$ref":"#/components/schemas/AwsNativePitrBackupResourceType"}},"required":["retentionDays","resourceType"],"title":"AwsNativePitrBackupPolicyPlan"},"AwsNativeStandardIntervalConfigIntervalHours":{"type":"string","enum":["1","2","4","6","8","12"],"description":"Backup frequency, in hours.\n","title":"AwsNativeStandardIntervalConfigIntervalHours"},"AwsNativeStandardIntervalConfig":{"type":"object","properties":{"intervalHours":{"$ref":"#/components/schemas/AwsNativeStandardIntervalConfigIntervalHours","description":"Backup frequency, in hours.\n"}},"required":["intervalHours"],"title":"AwsNativeStandardIntervalConfig"},"AwsNativeStandardBackupScheduleConfig":{"type":"object","properties":{"frequency":{"$ref":"#/components/schemas/StandardBackupScheduleFrequency"},"intervalConfig":{"$ref":"#/components/schemas/AwsNativeStandardIntervalConfig","description":"Hourly backup configuration.\nUsed only when `frequency` is `INTERVAL`.\n"},"dailyConfig":{"$ref":"#/components/schemas/DailyConfig","description":"Daily backup configuration.\nUsed only when `frequency` is `DAILY`.\n"},"weeklyConfig":{"$ref":"#/components/schemas/WeeklyConfig","description":"Weekly backup configuration.\nUsed only when `frequency` is `WEEKLY`.\n"},"monthlyConfig":{"$ref":"#/components/schemas/MonthlyConfig","description":"Monthly backup configuration.\nUsed only when `frequency` is `MONTHLY`.\n"},"annuallyConfig":{"$ref":"#/components/schemas/AnnuallyConfig","description":"Annual backup configuration.\nUsed only when `frequency` is `ANNUALLY`.\n"}},"required":["frequency"],"title":"AwsNativeStandardBackupScheduleConfig"},"AwsNativeStandardBackupSchedules":{"type":"object","properties":{"targetRegion":{"type":"string","description":"Target region for the native backup."},"scheduleConfig":{"$ref":"#/components/schemas/AwsNativeStandardBackupScheduleConfig","description":"Frequency configuration options."},"backupRetentionDays":{"type":"integer","description":"Backup retention period, in days."}},"required":["targetRegion","scheduleConfig","backupRetentionDays"],"title":"AwsNativeStandardBackupSchedules"},"VaultProtectionMode":{"type":"string","enum":["NONE","VAULT_LOCK_GOVERNANCE","VAULT_LOCK_COMPLIANCE","LOGICALLY_AIR_GAPPED"],"description":"Vault protection mode for an AWS native-standard backup policy.\n","title":"VaultProtectionMode"},"AwsNativeStandardBackupPolicyPlan":{"type":"object","properties":{"backupSchedules":{"type":"array","items":{"$ref":"#/components/schemas/AwsNativeStandardBackupSchedules"},"description":"List of backup schedules.\nEach schedule specifies a backup frequency, retention period, and target region.\n"},"vaultProtectionMode":{"$ref":"#/components/schemas/VaultProtectionMode","description":"Vault protection mode for the backup policy.\n"}},"required":["backupSchedules"],"title":"AwsNativeStandardBackupPolicyPlan"},"BackupPolicyPlan":{"type":"object","properties":{"backupPolicyType":{"$ref":"#/components/schemas/BackupPolicyType","description":"Backup policy type.\n`UNSPECIFIED` is supported only in responses.\n"},"standardPlan":{"$ref":"#/components/schemas/StandardBackupPolicyPlan","description":"Options for standard backup policies.\nUsed only when `backupPolicyType` is `STANDARD`.\n"},"highFrequencyPlan":{"$ref":"#/components/schemas/HighFrequencyBackupPolicyPlan","description":"Options for high-frequency backup policies.\nUsed only when `backupPolicyType` is `HIGH_FREQUENCY`.\n"},"awsNativePitrPlan":{"$ref":"#/components/schemas/AwsNativePitrBackupPolicyPlan","description":"Options for AWS native PiTR backup policies using AWS Backup.\nUsed only when `backupPolicyType` is `AWS_NATIVE_PITR`.\n"},"awsNativeStandardPlan":{"$ref":"#/components/schemas/AwsNativeStandardBackupPolicyPlan","description":"Options for AWS native standard backup policies.\nUsed only when `backupPolicyType` is `AWS_NATIVE_STANDARD`.\n"}},"required":["backupPolicyType"],"title":"BackupPolicyPlan"},"CreateBackupPolicyRequest":{"type":"object","properties":{"name":{"type":"string","description":"Backup policy display name."},"enabled":{"type":"boolean","default":true,"description":"Whether the backup policy is enabled."},"resourceSelector":{"$ref":"#/components/schemas/BackupPolicyResourceSelector","description":"Configuration that determines which resources are included in the backup policy.\nIncludes a combination of dynamic resource selection and manual overrides.\n"},"backupPlan":{"$ref":"#/components/schemas/BackupPolicyPlan"}},"required":["name","resourceSelector","backupPlan"],"title":"CreateBackupPolicyRequest"},"BackupPolicy":{"type":"object","properties":{"id":{"type":"string","description":"Backup policy ID."},"name":{"type":"string","description":"Backup policy display name."},"enabled":{"type":"boolean","description":"Whether the backup policy is enabled."},"resourceSelector":{"$ref":"#/components/schemas/BackupPolicyResourceSelector","description":"Configuration that determines which resources are included in the backup policy.\nIncludes a combination of dynamic resource selection and manual overrides.\n"},"backupPlan":{"$ref":"#/components/schemas/BackupPolicyPlan","description":"Backup policy type and backup schedule.\n"}},"required":["id","name","enabled","resourceSelector","backupPlan"],"title":"BackupPolicy"},"CreateBackupPolicyResponse":{"type":"object","properties":{"backupPolicy":{"$ref":"#/components/schemas/BackupPolicy"}},"required":["backupPolicy"],"title":"CreateBackupPolicyResponse"},"GetBackupPolicyResponse":{"type":"object","properties":{"backupPolicy":{"$ref":"#/components/schemas/BackupPolicy"}},"required":["backupPolicy"],"title":"GetBackupPolicyResponse"},"ListBackupPoliciesResponse":{"type":"object","properties":{"backupPolicies":{"type":"array","items":{"$ref":"#/components/schemas/BackupPolicy"}},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of backup jobs that matched the filter options."}},"title":"ListBackupPoliciesResponse"},"UpdateBackupPolicyRequest":{"type":"object","properties":{"name":{"type":"string","description":"Backup policy display name."},"enabled":{"type":"boolean","default":true,"description":"Whether the policy is enabled."},"resourceSelector":{"$ref":"#/components/schemas/BackupPolicyResourceSelector"},"backupPlan":{"$ref":"#/components/schemas/BackupPolicyPlan"}},"required":["name","resourceSelector","backupPlan"],"title":"UpdateBackupPolicyRequest"},"UpdateBackupPolicyResponse":{"type":"object","properties":{"backupPolicy":{"$ref":"#/components/schemas/BackupPolicy"}},"required":["backupPolicy"],"title":"UpdateBackupPolicyResponse"},"backupPolicies_deleteBackupPolicy_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"backupPolicies_deleteBackupPolicy_Response_200"},"Severity":{"type":"string","enum":["HIGH","MEDIUM","LOW"],"description":"Severity assigned to a control and to the violations it raises.","title":"Severity"},"BackupPostureControlGroupCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/LogicalOperator"},"operands":{"type":"array","items":{"$ref":"#/components/schemas/BackupPostureControlExpression"},"description":"List of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the list can be either a single expression or a nested `group` expression.\n\nMust contain at least 2 items.\n"}},"required":["operator","operands"],"description":"Group of expressions to evaluate using the logical operator specified in `operator`.\nEach item in the `operands` list can be either a single expression or a nested `group` expression.\n","title":"BackupPostureControlGroupCondition"},"BackupPostureControlExpression":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/BackupPostureControlGroupCondition"},"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"}},"description":"Resource selector expression that determines which resources a backup posture\ncontrol applies to. Set exactly one of the properties below. For AND/OR logic\nacross multiple conditions, use `group`; groups can be nested.\n","title":"BackupPostureControlExpression"},"BackupPostureControlResourceSelector":{"type":"object","properties":{"resourceSelectionMode":{"$ref":"#/components/schemas/ResourceSelectorMode","description":"How the control selects the resources it applies to.\nUse `ALL` to apply to all resources or `NONE` to apply to none.\nTo select resources by condition, use `CONDITIONAL` and provide an `expression`.\n"},"expression":{"$ref":"#/components/schemas/BackupPostureControlExpression","description":"Condition selecting the resources the control applies to.\nRequired when resource selection mode is `CONDITIONAL`.\nIgnored when resource selection mode is `ALL` or `NONE`.\n"}},"required":["resourceSelectionMode"],"title":"BackupPostureControlResourceSelector"},"MinRetentionRuleFrequency":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY","ANNUAL"],"description":"Backup cadence the minimum retention applies to.","title":"MinRetentionRuleFrequency"},"MinRetentionRule":{"type":"object","properties":{"minimumRetention":{"type":"integer","description":"Minimum backup retention period, in days."},"frequency":{"$ref":"#/components/schemas/MinRetentionRuleFrequency","description":"Backup cadence the minimum retention applies to."}},"required":["minimumRetention","frequency"],"title":"MinRetentionRule"},"MaxRetentionRule":{"type":"object","properties":{"maximumRetention":{"type":"integer","description":"Maximum backup retention period, in days."}},"required":["maximumRetention"],"title":"MaxRetentionRule"},"NumberOfCopiesRule":{"type":"object","properties":{"minCopies":{"type":"integer","description":"Minimum number of backup copies that must exist."}},"required":["minCopies"],"title":"NumberOfCopiesRule"},"BackupPostureControlRules":{"type":"object","properties":{"minimumRetention":{"type":"array","items":{"$ref":"#/components/schemas/MinRetentionRule"},"description":"Minimum retention required per backup frequency (daily, weekly, monthly, annual)."},"maximumRetention":{"$ref":"#/components/schemas/MaxRetentionRule","description":"Maximum retention a backup may keep before it's considered non-compliant."},"numberOfCopies":{"$ref":"#/components/schemas/NumberOfCopiesRule","description":"Minimum number of backup copies that must exist."},"crossRegion":{"type":"boolean","description":"Whether at least one backup copy must be stored in a different region."},"crossAccount":{"type":"boolean","description":"Whether at least one backup copy must be stored in a different cloud account."},"crossCloudProvider":{"type":"boolean","description":"Whether at least one backup copy must be stored in a different cloud provider."}},"description":"Backup requirements a resource must satisfy.\n","title":"BackupPostureControlRules"},"CreateBackupPostureControlRequest":{"type":"object","properties":{"name":{"type":"string","description":"Display name of the control."},"severity":{"$ref":"#/components/schemas/Severity","description":"Severity assigned to control violations."},"resourceSelector":{"$ref":"#/components/schemas/BackupPostureControlResourceSelector","description":"Resource selector determining which resources the control applies to."},"rules":{"$ref":"#/components/schemas/BackupPostureControlRules","description":"Backup requirements a matching resource must satisfy."}},"required":["name","severity","resourceSelector","rules"],"title":"CreateBackupPostureControlRequest"},"BackupPostureControl":{"type":"object","properties":{"id":{"type":"string","description":"ID of the backup posture control."},"name":{"type":"string","description":"Display name of the control."},"severity":{"$ref":"#/components/schemas/Severity","description":"Severity assigned to control violations."},"resourceSelector":{"$ref":"#/components/schemas/BackupPostureControlResourceSelector","description":"Determines which resources the control applies to."},"rules":{"$ref":"#/components/schemas/BackupPostureControlRules","description":"Backup requirements a matching resource must satisfy."}},"required":["id","name","severity","resourceSelector","rules"],"title":"BackupPostureControl"},"BackupPostureControlSortField":{"type":"string","enum":["NAME","SEVERITY"],"description":"Field to sort controls by.","title":"BackupPostureControlSortField"},"BackupPostureControlSort":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/BackupPostureControlSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"Single sort instruction for listing controls.","title":"BackupPostureControlSort"},"ListBackupPostureControlsRequest":{"type":"object","properties":{"sorts":{"type":"array","items":{"$ref":"#/components/schemas/BackupPostureControlSort"},"description":"Sort instructions applied in order. When omitted, controls are returned\nsorted by severity, most severe first.\n"}},"description":"Sort options for listing backup posture controls. All properties are optional.","title":"ListBackupPostureControlsRequest"},"ListBackupPostureControlsResponse":{"type":"object","properties":{"backupPostureControls":{"type":"array","items":{"$ref":"#/components/schemas/BackupPostureControl"},"description":"List of retrieved backup posture controls."},"totalCount":{"type":"integer","description":"Total number of backup posture controls that matched the filter options."},"nextPageToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["backupPostureControls"],"title":"ListBackupPostureControlsResponse"},"UpdateBackupPostureControlRequest":{"type":"object","properties":{"name":{"type":"string","description":"Display name of the control."},"severity":{"$ref":"#/components/schemas/Severity","description":"Severity assigned to violations of the control."},"resourceSelector":{"$ref":"#/components/schemas/BackupPostureControlResourceSelector","description":"Resource selector determining which resources the control applies to."},"rules":{"$ref":"#/components/schemas/BackupPostureControlRules","description":"Backup requirements a matching resource must satisfy."}},"required":["name","severity","resourceSelector","rules"],"title":"UpdateBackupPostureControlRequest"},"backupPostureControls_deleteBackupPostureControl_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"backupPostureControls_deleteBackupPostureControl_Response_200"},"InventorySnapshotVolume":{"type":"object","properties":{"providerVolumeId":{"type":"string","description":"Cloud-provider-assigned volume ID."},"region":{"type":"string","description":"Region the volume is hosted in."},"availabilityZone":{"type":"string","description":"Availability zone the volume is hosted in."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Volume tags as key-value pairs.\nBoth keys and values are strings.\n\n**Example**: `{\"env\": \"prod\", \"db\": \"\"}`\n"},"volumeSettings":{"$ref":"#/components/schemas/VolumeSettings"}},"required":["providerVolumeId","region","availabilityZone","tags","volumeSettings"],"title":"InventorySnapshotVolume"},"AwsEc2SnapshotProperties":{"type":"object","properties":{"instanceType":{"type":"string","description":"Instance type."},"subnetId":{"type":"string","description":"ID of the subnet the instance is in."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"IDs of security groups associated with the resource."},"instanceProfileName":{"type":"string","description":"The resource's instance profile."},"volumes":{"type":"array","items":{"$ref":"#/components/schemas/InventorySnapshotVolume"},"description":"List of volumes attached to the resource."}},"description":"Properties of the original AWS EC2 instance at the time the snapshot was taken.\nPresent only when `resourceType` is set to `AWS_EC2`.\n","title":"AwsEc2SnapshotProperties"},"AzureDiskSettings":{"type":"object","properties":{"name":{"type":"string","description":"Disk name."},"type":{"type":"string","description":"Disk type."},"tier":{"type":"string","description":"Disk tier."},"hyperVGeneration":{"type":"string","description":"Hyper-V generation of the disk.\nWhen restoring, defaults to the original Hyper-V generation captured by the snapshot.\n"},"sizeBytes":{"type":"integer","format":"int64","description":"Size of the disk, in bytes.\nWhen restoring, defaults to the original disk size captured by the snapshot.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored disk as key-value pairs, where key and value are both strings.\nIf not provided, defaults to an empty object, with no tags applied.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"}},"required":["name","type","tier"],"title":"AzureDiskSettings"},"AzureDisk":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned disk ID."},"settings":{"$ref":"#/components/schemas/AzureDiskSettings"}},"required":["providerDiskId","settings"],"title":"AzureDisk"},"AzureVmSnapshotProperties":{"type":"object","properties":{"name":{"type":"string","description":"VM name."},"sizeBytes":{"type":"string","description":"VM size, in bytes."},"disks":{"type":"array","items":{"$ref":"#/components/schemas/AzureDisk"},"description":"List of disks attached to the resource."}},"description":"Properties of the original Azure Virtual Machine instance at the time the snapshot was taken.\nPresent only when `resourceType` is set to `AZURE_VIRTUAL_MACHINE`.\n","title":"AzureVmSnapshotProperties"},"ResourceSnapshotProperties":{"type":"object","properties":{"awsEc2":{"$ref":"#/components/schemas/AwsEc2SnapshotProperties"},"azureVm":{"$ref":"#/components/schemas/AzureVmSnapshotProperties"}},"description":"Properties of the original resource at the time the snapshot was taken.\nThe properties present in this object change depending on the value set in `resourceType`.\n","title":"ResourceSnapshotProperties"},"ResourceSnapshot":{"type":"object","properties":{"properties":{"$ref":"#/components/schemas/ResourceSnapshotProperties"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource tags as key-value pairs.\nBoth keys and values are strings.\nIf a tag is a key with no value, the value is presented as an empty string.\n\n**Example:** `{\"Name\": \"customers\"}`\n"},"resourceType":{"$ref":"#/components/schemas/ResourceType"}},"description":"Details about the backed-up resource at the time the snapshot was taken.","title":"ResourceSnapshot"},"Snapshot":{"type":"object","properties":{"id":{"type":"string","description":"Eon snapshot ID."},"projectId":{"type":"string","description":"ID of the snapshot's parent project."},"createdTime":{"type":"string","format":"date-time","description":"Date and time the snapshot creation was started.\nThis doesn't represent the point in time the resource is backed up from, which is instead represented by the `pointInTime` property.\n"},"pointInTime":{"type":"string","format":"date-time","description":"Date and time of the resource that's preserved by the snapshot."},"vaultId":{"type":"string","description":"ID of the vault the snapshot is stored in. Empty for native snapshots."},"resourceId":{"type":"string","description":"Eon-assigned ID of the resource the snapshot is backing up."},"jobId":{"type":"string","description":"Backup job ID."},"expirationTime":{"type":"string","format":"date-time","description":"Date and time the snapshot's retention is expected to expire, after which it's marked for deletion."},"resource":{"$ref":"#/components/schemas/ResourceSnapshot"},"onHold":{"type":"boolean","description":"Whether the snapshot is on user hold."},"holdDescription":{"type":"string","description":"Note explaining why the snapshot is on hold.\nCleared when the hold is removed.\n"}},"required":["id","createdTime","resourceId"],"description":"Eon snapshot.","title":"Snapshot"},"GetSnapshotResponse":{"type":"object","properties":{"snapshot":{"$ref":"#/components/schemas/Snapshot"}},"required":["snapshot"],"title":"GetSnapshotResponse"},"SnapshotDateFilters":{"type":"object","properties":{"startDate":{"type":"string","description":"Matches if `pointInTime` is on or later than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"},"endDate":{"type":"string","description":"Matches if `pointInTime` is on or earlier than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"}},"title":"SnapshotDateFilters"},"SnapshotFilterConditions":{"type":"object","properties":{"pointInTime":{"$ref":"#/components/schemas/SnapshotDateFilters"}},"title":"SnapshotFilterConditions"},"SnapshotSortField":{"type":"string","enum":["pointInTime"],"description":"Field to sort by.","title":"SnapshotSortField"},"SortSnapshotsBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/SnapshotSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortSnapshotsBy"},"ListInventorySnapshotsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/SnapshotFilterConditions","description":"Filter conditions.\nIf omitted, no filtering is applied.\n"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortSnapshotsBy"},"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n"}},"title":"ListInventorySnapshotsRequest"},"ListInventorySnapshotsResponse":{"type":"object","properties":{"snapshots":{"type":"array","items":{"$ref":"#/components/schemas/Snapshot"},"description":"List of Eon snapshots."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"The total number of Eon snapshots."}},"required":["snapshots","totalCount"],"title":"ListInventorySnapshotsResponse"},"HoldSnapshotRequest":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"description":"Note explaining why the snapshot is being held.\nCleared when the hold is removed.\n"}},"title":"HoldSnapshotRequest"},"snapshots_holdSnapshot_Response_200":{"type":"object","properties":{},"title":"snapshots_holdSnapshot_Response_200"},"snapshots_removeSnapshotHold_Response_200":{"type":"object","properties":{},"title":"snapshots_removeSnapshotHold_Response_200"},"S3RestoreTarget":{"type":"object","properties":{"bucketName":{"type":"string","description":"Name of an existing bucket to restore the files to."},"encryptionKeyId":{"type":"string","description":"ID of the key you want Eon to use for encrypting the restored files."},"prefix":{"type":"string","description":"Prefix to add to the restore path.\nIf you don't specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the bucket.\n"}},"required":["bucketName"],"description":"Information about the S3 bucket where you want to restore the files.\nIf you don't specify a target, the files are restored to the original bucket.\n","title":"S3RestoreTarget"},"StorageAccountRestoreTarget":{"type":"object","properties":{"name":{"type":"string","description":"Name of the storage account to restore the files to."},"resourceGroup":{"type":"string","description":"Name of the resource group that contains the storage account."},"container":{"type":"string","description":"Name of the container in the storage account to restore the files to."},"prefix":{"type":"string","description":"Prefix to add to the restore path.\nIf you don't specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the container.\n"}},"required":["name","container"],"description":"Information about the storage account where you want to restore the files.\nIf you don't specify a target, the files are restored to the original storage account.\n","title":"StorageAccountRestoreTarget"},"GCSRestoreTarget":{"type":"object","properties":{"bucketName":{"type":"string","description":"Name of an existing bucket to restore the files to."},"prefix":{"type":"string","description":"Prefix to add to the restore path.\nIf you don't specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the bucket.\n"}},"required":["bucketName"],"description":"Information about the Google Cloud Storage bucket where you want to restore the files.\nIf you don't specify a target, the files are restored to the original bucket.\n","title":"GCSRestoreTarget"},"ObjectStorageDestination":{"type":"object","properties":{"s3Bucket":{"$ref":"#/components/schemas/S3RestoreTarget"},"storageAccount":{"$ref":"#/components/schemas/StorageAccountRestoreTarget"},"gcsBucket":{"$ref":"#/components/schemas/GCSRestoreTarget"}},"title":"ObjectStorageDestination"},"FilePath":{"type":"object","properties":{"path":{"type":"string","description":"Absolute path to the file or directory to restore."},"isDirectory":{"type":"boolean","description":"Whether `path` is a directory.\nIf `true`, Eon restores all files in all subdirectories under the path.\nIf `false`, Eon restores only the file at the path.\n"}},"required":["path","isDirectory"],"title":"FilePath"},"RestoreFilesRequest":{"type":"object","properties":{"destination":{"$ref":"#/components/schemas/ObjectStorageDestination"},"files":{"type":"array","items":{"$ref":"#/components/schemas/FilePath"},"description":"List of file paths to restore."},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."}},"required":["destination","files","restoreAccountId"],"title":"RestoreFilesRequest"},"RestoreJobInitiationResponse":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid","description":"Restore job ID."}},"required":["jobId"],"title":"RestoreJobInitiationResponse"},"RestoreBucketRequest":{"type":"object","properties":{"destination":{"$ref":"#/components/schemas/ObjectStorageDestination"},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."}},"required":["destination","restoreAccountId"],"title":"RestoreBucketRequest"},"MPAInterceptedResponse":{"type":"object","properties":{"actionApprovalRequest":{"$ref":"#/components/schemas/MPARequest"}},"required":["actionApprovalRequest"],"description":"Response when an operation is intercepted by an action approval policy.","title":"MPAInterceptedResponse"},"EbsTarget":{"type":"object","properties":{"description":{"type":"string","description":"Description to apply to the restored volume.\n\nDefault: No description.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored volume as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"volumeEncryptionKeyId":{"type":"string","description":"ID of the key you want Eon to use for encrypting the restored volume."},"availabilityZone":{"type":"string","description":"Availability zone to restore the volume to."},"volumeSettings":{"$ref":"#/components/schemas/VolumeSettings"}},"required":["volumeEncryptionKeyId","availabilityZone","volumeSettings"],"title":"EbsTarget"},"EbsRestoreDestination":{"type":"object","properties":{"awsEbs":{"$ref":"#/components/schemas/EbsTarget"}},"title":"EbsRestoreDestination"},"RestoreVolumeToEbsRequest":{"type":"object","properties":{"providerVolumeId":{"type":"string","description":"Cloud-provider-assigned ID of the volume to restore."},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/EbsRestoreDestination"}},"required":["providerVolumeId","restoreAccountId","destination"],"title":"RestoreVolumeToEbsRequest"},"EbsSnapshotTarget":{"type":"object","properties":{"region":{"type":"string","description":"Region to restore the EBS snapshot to."},"description":{"type":"string","description":"Description to apply to the EBS snapshot."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the EBS snapshot as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"snapshotEncryptionKeyId":{"type":"string","description":"ID of the key you want Eon to use for encrypting the EBS snapshot."}},"required":["region","snapshotEncryptionKeyId"],"title":"EbsSnapshotTarget"},"EbsSnapshotRestoreDestination":{"type":"object","properties":{"awsEbs":{"$ref":"#/components/schemas/EbsSnapshotTarget"}},"title":"EbsSnapshotRestoreDestination"},"RestoreVolumeToEbsSnapshotRequest":{"type":"object","properties":{"providerVolumeId":{"type":"string","description":"Cloud-provider-assigned ID of the volume to restore."},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/EbsSnapshotRestoreDestination"}},"required":["providerVolumeId","restoreAccountId","destination"],"title":"RestoreVolumeToEbsSnapshotRequest"},"RdsPasswordConfigPasswordManagementType":{"type":"string","enum":["AWS_SECRETS_MANAGER","SELF_MANAGED"],"description":"Password management type to apply to the restored database.\n","title":"RdsPasswordConfigPasswordManagementType"},"RdsPasswordConfig":{"type":"object","properties":{"passwordManagementType":{"$ref":"#/components/schemas/RdsPasswordConfigPasswordManagementType","description":"Password management type to apply to the restored database.\n"},"password":{"type":"string","description":"Customer-managed password.\nRequired when password management type is `SELF_MANAGED`.\n"},"secretsManagerKmsKeyId":{"type":"string","description":"ARN of a KMS key to encrypt the secret that stores the database master password.\nThe secret is managed through Amazon Secrets Manager.\nApplicable when password management type is `AWS_SECRETS_MANAGER`.\n\nIf omitted, AWS defaults to the `aws/secretsmanager` key.\n\nThis is distinct from `encryptionKeyId`, which controls RDS storage encryption.\n"}},"required":["passwordManagementType"],"description":"Password management configuration for the restored RDS database.\n","title":"RdsPasswordConfig"},"AwsDatabaseDestination":{"type":"object","properties":{"restoreRegion":{"type":"string","description":"Region to restore to."},"encryptionKeyId":{"type":"string","description":"ID of the key you want Eon to use for encrypting the restored resource."},"restoredName":{"type":"string","description":"Name to assign to the restored resource."},"securityGroups":{"type":"array","items":{"type":"string"},"description":"List of security group IDs to associate with the restored resource.\nMust be in the same VPC of `subnetGroup`.\n"},"subnetGroup":{"type":"string","description":"Subnet group ID to associate with the restored resource.\nMust be in the same VPC of `securityGroup`.\n"},"dbInstanceClass":{"type":"string","description":"Instance class to use for the restored resource."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored instance as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"passwordConfig":{"$ref":"#/components/schemas/RdsPasswordConfig"},"preserveInstanceNames":{"type":"boolean","default":false,"description":"When true, restores cluster members with their original instance names from the snapshot.\nIf `restoredName` is empty, name is set to the original cluster identifier from the snapshot.\nApplies only to Aurora clusters.\n"}},"required":["restoreRegion","encryptionKeyId","restoredName"],"description":"Configuration for restoring to RDS.","title":"AwsDatabaseDestination"},"DatabaseDestination":{"type":"object","properties":{"awsRds":{"$ref":"#/components/schemas/AwsDatabaseDestination","description":"Configuration for restoring to an RDS instance."}},"description":"Restore configuration.","title":"DatabaseDestination"},"RestoreDbToRdsInstanceRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","format":"uuid","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/DatabaseDestination"}},"required":["restoreAccountId","destination"],"title":"RestoreDbToRdsInstanceRequest"},"RestoreInstanceVolumeInput":{"type":"object","properties":{"providerVolumeId":{"type":"string","description":"Cloud-provider-assigned ID of the volume to restore."},"description":{"type":"string","description":"Optional description."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored volume as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"primary\": \"\"}`\n"},"volumeEncryptionKeyId":{"type":"string","description":"ARN of the KMS key for encrypting the restored volume."},"volumeSettings":{"$ref":"#/components/schemas/VolumeSettings","description":"Settings to use for the restored volume."}},"required":["providerVolumeId","volumeEncryptionKeyId","volumeSettings"],"title":"RestoreInstanceVolumeInput"},"AwsEc2InstanceRestoreTarget":{"type":"object","properties":{"region":{"type":"string","description":"Region to restore the instance to."},"instanceType":{"type":"string","description":"Instance type to use for the restored instance."},"subnetId":{"type":"string","description":"Subnet ID to associate with the restored instance."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"List of security group IDs to associate with the restored instance."},"privateIpAddress":{"type":"string","description":"Primary private IPv4 address for the restored instance.\nMust fall within the selected subnet's CIDR range.\nOmit to let AWS auto-assign an address.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored instance as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"volumeRestoreParameters":{"type":"array","items":{"$ref":"#/components/schemas/RestoreInstanceVolumeInput"},"description":"Volumes to restore and attach to the restored instance.\nEach item in the list corresponds to a volume to be restored, where `providerVolumeId` matches the volume's ID at the time of the snapshot.\nThe root volume must be present in the list.\n"},"startInstanceAfterRestore":{"type":"boolean","default":true,"description":"Whether to start the EC2 instance after restoring it.\nIf set to `false`, the instance remains in a stopped state.\n"}},"required":["region","instanceType","subnetId","volumeRestoreParameters"],"title":"AwsEc2InstanceRestoreTarget"},"AwsEc2InstanceRestoreDestination":{"type":"object","properties":{"awsEc2":{"$ref":"#/components/schemas/AwsEc2InstanceRestoreTarget","description":"Configuration for restoring to an EC2 instance."}},"title":"AwsEc2InstanceRestoreDestination"},"RestoreAwsEc2InstanceRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/AwsEc2InstanceRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreAwsEc2InstanceRequest"},"AwsDynamoDBDestination":{"type":"object","properties":{"restoreRegion":{"type":"string","description":"Region to restore to."},"encryptionKeyId":{"type":"string","description":"ID of the key you want Eon to use for encrypting the restored resource."},"restoredName":{"type":"string","description":"Name to assign to the restored resource."},"writeCapacityUnits":{"type":"integer","description":"Write capacity units for the restored table.\nDefaults to 5.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored instance as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"}},"required":["restoreRegion","restoredName"],"description":"Configuration for restoring to DynamoDB.","title":"AwsDynamoDBDestination"},"DynamodbTableRestoreDestination":{"type":"object","properties":{"awsDynamodb":{"$ref":"#/components/schemas/AwsDynamoDBDestination","description":"Configuration for restoring to a DynamoDB table."}},"title":"DynamodbTableRestoreDestination"},"RestoreDynamoDBTableRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/DynamodbTableRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreDynamoDBTableRequest"},"RestoreAzureInstanceDiskInput":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned ID of the disk to restore."},"settings":{"$ref":"#/components/schemas/AzureDiskSettings"}},"required":["providerDiskId","settings"],"title":"RestoreAzureInstanceDiskInput"},"AzureVmInstanceRestoreTarget":{"type":"object","properties":{"region":{"type":"string","description":"Region to restore to."},"resourceGroupName":{"type":"string","description":"Name of the resource group to restore to."},"vmName":{"type":"string","description":"Restored VM name."},"vmSize":{"type":"string","description":"Size of the restored VM."},"networkInterface":{"type":"string","description":"Name of the network interface to use."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored instance as key-value pairs, where key and value are both strings.\nIf not provided, defaults to an empty object, with no tags applied.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"disks":{"type":"array","items":{"$ref":"#/components/schemas/RestoreAzureInstanceDiskInput"}},"startInstanceAfterRestore":{"type":"boolean","default":true,"description":"Whether to start the VM instance after restoring it.\nIf set to `false`, the VM is created in a stopped state.\n"}},"required":["region","resourceGroupName","vmName","vmSize","disks"],"title":"AzureVmInstanceRestoreTarget"},"AzureVmInstanceRestoreDestination":{"type":"object","properties":{"azureVm":{"$ref":"#/components/schemas/AzureVmInstanceRestoreTarget","description":"Configuration for restoring to an Azure VM instance."}},"title":"AzureVmInstanceRestoreDestination"},"RestoreAzureVmInstanceRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/AzureVmInstanceRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreAzureVmInstanceRequest"},"AzureSqlDatabaseRestoreTarget":{"type":"object","properties":{"region":{"type":"string","description":"Region to restore to."},"resourceGroupName":{"type":"string","description":"Name of the resource group to restore to."},"serverName":{"type":"string","description":"Restored SQL server name."},"adminUserName":{"type":"string","description":"Username to set for admin of user of the restored database."},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Tags to apply to the restored instance as key-value pairs, where key and value are both strings.\nIf not provided, defaults to an empty object, with no tags applied.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"}},"required":["region","resourceGroupName","serverName","adminUserName"],"title":"AzureSqlDatabaseRestoreTarget"},"AzureSqlDatabaseRestoreDestination":{"type":"object","properties":{"azureSqlDatabase":{"$ref":"#/components/schemas/AzureSqlDatabaseRestoreTarget","description":"Configuration for restoring to an Azure VM instance."}},"title":"AzureSqlDatabaseRestoreDestination"},"RestoreAzureSqlDatabaseRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/AzureSqlDatabaseRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreAzureSqlDatabaseRequest"},"AzureDiskTarget":{"type":"object","properties":{"region":{"type":"string","description":"Region to restore to."},"resourceGroupName":{"type":"string","description":"Name of the resource group to restore to."},"settings":{"$ref":"#/components/schemas/AzureDiskSettings"}},"required":["region","resourceGroupName","settings"],"title":"AzureDiskTarget"},"AzureDiskRestoreDestination":{"type":"object","properties":{"azureDisk":{"$ref":"#/components/schemas/AzureDiskTarget"}},"title":"AzureDiskRestoreDestination"},"RestoreAzureDiskRequest":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned ID of the disk to restore."},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/AzureDiskRestoreDestination"}},"required":["providerDiskId","restoreAccountId","destination"],"title":"RestoreAzureDiskRequest"},"GcpDiskSettings":{"type":"object","properties":{"name":{"type":"string","maxLength":63,"description":"Disk name."},"type":{"type":"string","description":"Disk type."},"sizeBytes":{"type":"integer","format":"int64","description":"Size of the disk, in bytes."},"iops":{"type":"integer","format":"int64","description":"Provisioned IOPS for the disk.\nApplicable only when `type` is `pd-extreme`.\nWhen restoring, defaults to the original IOPS captured by the snapshot.\n"},"throughput":{"type":"integer","format":"int64","description":"Disk throughput.\nWhen restoring, defaults to the original throughput captured by the snapshot.\n"},"description":{"type":"string","description":"Disk description."},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to the restored disk as key-value pairs, where key and value are both strings.\nThese labels are always applied: `\"eon-restore\": \"true\"`, `\"eon-job-id\"`, `\"eon-original-disk-id\"`, `\"eon-original-disk-name\"`.\n\n**Example:** `{\"primary\": \"true\"}`\n"},"encryptionKeyId":{"type":"string","description":"ID of the customer-managed encryption key to use for the disk."}},"required":["name","type","sizeBytes"],"title":"GcpDiskSettings"},"GcpDiskTarget":{"type":"object","properties":{"zone":{"type":"string","description":"Zone to restore the disk to."},"settings":{"$ref":"#/components/schemas/GcpDiskSettings"}},"required":["zone","settings"],"title":"GcpDiskTarget"},"GcpDiskRestoreDestination":{"type":"object","properties":{"gcpDisk":{"$ref":"#/components/schemas/GcpDiskTarget"}},"title":"GcpDiskRestoreDestination"},"RestoreGcpDiskRequest":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned ID of the disk to restore."},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/GcpDiskRestoreDestination","description":"Restore configuration."}},"required":["providerDiskId","restoreAccountId","destination"],"title":"RestoreGcpDiskRequest"},"RestoreGcpInstanceDiskInput":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned ID of the disk to restore."},"settings":{"$ref":"#/components/schemas/GcpDiskSettings","description":"Settings to use for the restored disk."}},"required":["providerDiskId","settings"],"title":"RestoreGcpInstanceDiskInput"},"GcpVmInstanceRestoreTarget":{"type":"object","properties":{"zone":{"type":"string","description":"Zone to restore to."},"machineType":{"type":"string","description":"Machine type to use."},"name":{"type":"string","maxLength":63,"description":"VM name."},"networkName":{"type":"string","description":"Name of the VPC network to use."},"subnetName":{"type":"string","description":"Name of the subnet to use."},"networkHostProject":{"type":"string","description":"ID of the project that hosts the VPC network.\nApplicable only when restoring to a shared VPC network.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to the restored VM as key-value pairs, where key and value are both strings.\nThese labels are always applied: `\"eon-restore\": \"true\"`.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"},"disks":{"type":"array","items":{"$ref":"#/components/schemas/RestoreGcpInstanceDiskInput"},"description":"Disks to restore and attach to the restored instance.\nEach item in the list corresponds to a disk to be restored, where `providerDiskId` matches the disk's ID at the time of the snapshot.\nThe boot disk must be in the list.\n"},"internalIp":{"type":"string","description":"Optional internal (private) IPv4 address for the restored VM.\nMust fall within the selected subnet's primary CIDR range.\nOmit to let GCP auto-assign an address.\n"},"startInstanceAfterRestore":{"type":"boolean","default":true,"description":"Whether to start the VM instance after restoring it.\nIf set to `false`, the VM is created in a stopped state.\n"}},"required":["zone","machineType","name","networkName","subnetName","disks"],"title":"GcpVmInstanceRestoreTarget"},"GcpVmInstanceRestoreDestination":{"type":"object","properties":{"gcpVm":{"$ref":"#/components/schemas/GcpVmInstanceRestoreTarget","description":"Configuration for restoring a GCP VM instance."}},"title":"GcpVmInstanceRestoreDestination"},"RestoreGcpVmInstanceRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/GcpVmInstanceRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreGcpVmInstanceRequest"},"GcpNetworkType":{"type":"string","enum":["UNSPECIFIED","PUBLIC","PRIVATE"],"description":"Network type.\n`UNSPECIFIED` is supported only in responses.\n","title":"GcpNetworkType"},"GcpCloudSqlTarget":{"type":"object","properties":{"zone":{"type":"string","description":"Zone to restore to."},"name":{"type":"string","description":"Instance name."},"networkType":{"$ref":"#/components/schemas/GcpNetworkType"},"networkName":{"type":"string","description":"Name of the VPC network to use."},"networkHostProject":{"type":"string","description":"ID of the project that hosts the VPC network.\nApplicable only when restoring to a shared VPC network.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to the restored Cloud SQL instance as key-value pairs, where key and value are both strings.\nThese labels are always applied: `\"eon-restore\": \"true\"`.\n\n**Example:** `{\"eon_api_restore\": \"true\"}`\n"}},"required":["zone","name","networkType"],"title":"GcpCloudSqlTarget"},"GcpCloudSqlRestoreDestination":{"type":"object","properties":{"gcpCloudSql":{"$ref":"#/components/schemas/GcpCloudSqlTarget","description":"Configuration for restoring to a GCP Cloud SQL instance."}},"title":"GcpCloudSqlRestoreDestination"},"RestoreGcpCloudSqlRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/GcpCloudSqlRestoreDestination","description":"Restore configuration."}},"required":["restoreAccountId","destination"],"title":"RestoreGcpCloudSqlRequest"},"BigQueryDatasetDestination":{"type":"object","properties":{"datasetId":{"type":"string","description":"Destination dataset ID.\nIf the dataset doesn't exist, it's created.\n"},"location":{"type":"string","description":"BigQuery location for the dataset.\nDefaults to the original dataset location.\n\nFor multi-region, set to `US` or `EU`.\n"},"selectedTables":{"type":"array","items":{"type":"string"},"description":"List of table names to restore.\nIf empty or not specified, all tables in the snapshot are restored.\n"},"selectedViews":{"type":"array","items":{"type":"string"},"description":"List of view names to restore.\nIf empty or not specified, all views in the snapshot are restored.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to the restored BigQuery dataset as key-value pairs, where key and value are both strings.\n\n**Example:** `{\"eon-restore\": \"true\"}`\n"}},"required":["datasetId"],"description":"Destination configuration for BigQuery dataset restore.","title":"BigQueryDatasetDestination"},"RestoreBigQueryDatasetRequest":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the restore account."},"destination":{"$ref":"#/components/schemas/BigQueryDatasetDestination"}},"required":["restoreAccountId","destination"],"title":"RestoreBigQueryDatasetRequest"},"S3RestoreDestination":{"type":"object","properties":{"bucketName":{"type":"string","description":"Name of an existing bucket to restore query results to.\nMust be in the same region as the snapshot's vault.\n"},"prefix":{"type":"string","description":"Prefix to prepend to the restore path.\nIf omitted, query results are restored to the bucket root.\n"}},"required":["bucketName"],"description":"S3 bucket.","title":"S3RestoreDestination"},"QueryDBRestoreDestination":{"type":"object","properties":{"s3Bucket":{"$ref":"#/components/schemas/S3RestoreDestination"}},"title":"QueryDBRestoreDestination"},"QueryDBRequest":{"type":"object","properties":{"databaseName":{"type":"string","description":"Name of the database to query."},"query":{"type":"string","description":"SQL query to run against the database.\nSupport is limited to Athena [`SELECT` queries](https://docs.aws.amazon.com/athena/latest/ug/select.html).\n"},"restoreAccountId":{"type":"string","description":"Eon-assigned ID of the [restore account](./list-restore-accounts)."},"destination":{"$ref":"#/components/schemas/QueryDBRestoreDestination","description":"Storage location to store CSV of query results to."}},"required":["databaseName","query","restoreAccountId","destination"],"title":"QueryDBRequest"},"QueryDBResponse":{"type":"object","properties":{"queryId":{"type":"string","description":"Query ID.\nCan be used to call [Get Query Status](./get-query-status) and [Get Query Result](./get-query-result).\n"}},"required":["queryId"],"title":"QueryDBResponse"},"QueryDBStatus":{"type":"string","enum":["UNSPECIFIED","IN_PROGRESS","COMPLETED","CANCELED","FAILED"],"description":"Query status.\nIf completed, the query results can be retrieved.\n`UNSPECIFIED` is supported only in responses.\n","title":"QueryDBStatus"},"QueryDBStatusResponse":{"type":"object","properties":{"runningTimeMs":{"type":"integer","description":"Time the query took to run, in milliseconds."},"status":{"$ref":"#/components/schemas/QueryDBStatus"},"errorMessage":{"type":["string","null"],"description":"Error message.\nPresent only if the status is `FAILED`.\n"},"outputLocations":{"type":"array","items":{"type":"string"},"description":"Locations where the query results are saved to.\nThis is set by `destination` in the [Run Query](./run-query) request body.\n"}},"required":["status"],"title":"QueryDBStatusResponse"},"QueryDBResultResponse":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"string"},"description":"List of the column names in the returned records."},"records":{"type":"array","items":{"type":"array","items":{"type":"string"}},"description":"List of records, returned as an array of arrays.\nThe inner array contains the values of the columns in the same order as returned in `columns`.\n"},"nextToken":{"type":["string","null"],"description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["columns","records","nextToken"],"title":"QueryDBResultResponse"},"JobStatus":{"type":"string","enum":["JOB_UNSPECIFIED","JOB_PENDING","JOB_RUNNING","JOB_COMPLETED","JOB_FAILED","JOB_PARTIAL","JOB_CANCELED","JOB_REJECTED","JOB_SKIPPED"],"description":"Job status.\n`JOB_UNSPECIFIED` is supported only in responses.\n","title":"JobStatus"},"ErrorCode":{"type":"string","enum":["INTERNAL_JOB_ERROR","JOB_CANCELED_ERROR","CLOUD_OPERATION_FAILED","FAILED_TO_GET_RESOURCE_INFORMATION","RESOURCE_IS_TERMINATED","INVALID_RESOURCE_STATE","INVALID_RESOURCE_CONFIGURATION","RESOURCE_CONFLICT","UNSUPPORTED_OPERATION_ON_RESOURCE","FAILED_TO_CREATE_RESOURCE","FAILED_TO_START_RESOURCE","FAILED_TO_STOP_RESOURCE","FAILED_TO_GET_STORAGE_INFORMATION","FAILED_TO_CREATE_STORAGE","FAILED_TO_DELETE_STORAGE","FAILED_TO_ATTACH_STORAGE","FAILED_TO_DETACH_STORAGE","FAILED_TO_CREATE_IMAGE","FAILED_TO_GET_SNAPSHOT_INFORMATION","FAILED_TO_TAKE_SNAPSHOT","FAILED_TO_USE_SNAPSHOT","FAILED_TO_DELETE_SNAPSHOT","SNAPSHOT_QUOTA_EXCEEDED","RESOURCE_USAGE_QUOTA_EXCEEDED","AUTHENTICATION_FAILURE","INVALID_ACCOUNT_CONFIGURATION","INVALID_VAULT_CONFIGURATION","INVALID_INPUT_PARAMETERS","TOO_MANY_REQUESTS","BACKUP_CONFLICT","CLASSIFICATION_CONFLICT","FAILED_TO_RUN_QUERY","OPERATION_DENIED_BY_CONFIGURATION","INSUFFICIENT_ENCRYPTION_PERMISSIONS"],"description":"Code indicating the type of error.","title":"ErrorCode"},"JobExecutionDetails":{"type":"object","properties":{"jobId":{"type":"string","description":"Job ID."},"status":{"$ref":"#/components/schemas/JobStatus"},"createdTime":{"type":"string","format":"date-time","description":"Date and time the job was created."},"expectedStartTime":{"type":["string","null"],"format":"date-time","description":"Date and time the job is expected to start.\nReturned only for pending jobs.\n"},"startTime":{"type":["string","null"],"format":"date-time","description":"Date and time the job started."},"endTime":{"type":["string","null"],"format":"date-time","description":"Date and time the job finished."},"durationSeconds":{"type":["integer","null"],"format":"int64","description":"How long the job took, in seconds."},"errorCode":{"$ref":"#/components/schemas/ErrorCode"},"statusMessage":{"type":"string","description":"Message that gives additional details about the job status, if applicable."}},"required":["jobId","status","createdTime"],"title":"JobExecutionDetails"},"ResourceDetails":{"type":"object","properties":{"id":{"type":"string","description":"Eon-assigned resource ID."},"providerResourceId":{"type":"string","description":"Cloud-provider-assigned resource ID."},"resourceName":{"type":"string","description":"Resource display name."},"resourceType":{"$ref":"#/components/schemas/ResourceType"},"providerAccountId":{"type":"string","description":"Cloud-provider-assigned account ID."},"cloudProvider":{"$ref":"#/components/schemas/Provider"},"region":{"type":"string","description":"Region the resource is hosted in."},"sourceStorageSizeBytes":{"type":"integer","format":"int64","description":"Total storage size at the source, in bytes."}},"required":["id","providerResourceId","resourceName","resourceType","providerAccountId","cloudProvider","region","sourceStorageSizeBytes"],"title":"ResourceDetails"},"JobSnapshotDetails":{"type":"object","properties":{"id":{"type":"string","description":"Snapshot ID."},"pointInTime":{"type":"string","format":"date-time","description":"Date and time of the resource that's preserved by the snapshot."},"expirationTime":{"type":"string","format":"date-time","description":"Date and time the snapshot's retention is expected to expire, after which it's marked for deletion."}},"required":["pointInTime"],"description":"Eon snapshot.","title":"JobSnapshotDetails"},"BackupJobType":{"type":"string","enum":["BACKUP_JOB_TYPE_UNSPECIFIED","AWS_EC2_BACKUP","AWS_EC2_SNAPSHOT_CONVERSION","AWS_RDS_BACKUP","AWS_S3_BACKUP","AWS_FSX_BACKUP","AWS_EFS_BACKUP","AWS_DYNAMO_DB_BACKUP","AWS_DYNAMO_DB_BACKUP_FULL","AWS_DYNAMO_DB_BACKUP_FULL_EXPORT","AWS_EKS_NAMESPACE_BACKUP","AZURE_STORAGE_ACCOUNT_BACKUP","AZURE_VM_BACKUP","AZURE_SQL_DATABASE_BACKUP","AZURE_SQL_MANAGED_INSTANCE_BACKUP","AZURE_SQL_VIRTUAL_MACHINE_BACKUP","AZURE_SQL_VIRTUAL_MACHINE_BACKUP_FULL","AZURE_POSTGRESQL_BACKUP","AZURE_MYSQL_BACKUP","GCP_COMPUTE_ENGINE_INSTANCE_BACKUP","GCP_CLOUD_STORAGE_BACKUP","GCP_CLOUD_SQL_BACKUP","GCP_BIGQUERY_BACKUP","ATLAS_MONGODB_CLUSTER_BACKUP","ATLAS_MONGODB_CLUSTER_BACKUP_FULL"],"description":"Backup job type.\n`BACKUP_JOB_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"BackupJobType"},"BackupJobVault":{"oneOf":[{"$ref":"#/components/schemas/BackupVault"}],"description":"Information about the vault the snapshot is being saved to.","title":"BackupJobVault"},"BackupJob":{"type":"object","properties":{"jobExecutionDetails":{"$ref":"#/components/schemas/JobExecutionDetails","description":"Information about the backup job."},"resourceDetails":{"$ref":"#/components/schemas/ResourceDetails","description":"Information about the resource.\nRepresents the resource's state at the time of backup.\n"},"snapshotDetails":{"$ref":"#/components/schemas/JobSnapshotDetails","description":"Information about the snapshot created by the backup job.\nReturned only for completed jobs.\n"},"backupType":{"$ref":"#/components/schemas/BackupJobType","description":"Type of backup.\nValue represents the cloud provider, resource type, and backup method.\n"},"vault":{"oneOf":[{"$ref":"#/components/schemas/BackupJobVault"},{"type":"null"}],"description":"Information about the vault the snapshot is being saved to."}},"required":["jobExecutionDetails","backupType"],"title":"BackupJob"},"GetBackupJobResponse":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/BackupJob"}},"required":["job"],"title":"GetBackupJobResponse"},"JobIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `jobId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `jobId`."}},"title":"JobIdFilters"},"SnapshotIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `snapshotId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list equals `snapshotId`."}},"title":"SnapshotIdFilters"},"JobStatusFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/JobStatus"}},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/JobStatus"}}},"title":"JobStatusFilters"},"BackupJobTypeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/BackupJobType"},"description":"Matches if any item in this list equals `backupType`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/BackupJobType"},"description":"Matches if no item in this list equals `backupType`."}},"title":"BackupJobTypeFilters"},"StartTimeDateFilters":{"type":"object","properties":{"startDate":{"type":"string","description":"Matches if `startTime` is on or later than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"},"endDate":{"type":"string","description":"Matches if `startTime` is on or earlier than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"}},"title":"StartTimeDateFilters"},"EndTimeDateFilters":{"type":"object","properties":{"startDate":{"type":"string","description":"Matches if `endTime` is on or later than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"},"endDate":{"type":"string","description":"Matches if `endTime` is on or earlier than this date.\nMust be in ISO 8601 YYYY-MM-DD format.\n"}},"title":"EndTimeDateFilters"},"BackupJobsFilterConditions":{"type":"object","properties":{"jobId":{"oneOf":[{"$ref":"#/components/schemas/JobIdFilters"},{"type":"null"}],"description":"Filters for backup job ID."},"snapshotId":{"$ref":"#/components/schemas/SnapshotIdFilters","description":"Filters for the Eon snapshot ID."},"status":{"$ref":"#/components/schemas/JobStatusFilters","description":"Filters for the job status."},"providerResourceId":{"$ref":"#/components/schemas/ResourceIdFilters","description":"Filters for the cloud-provider-assigned resource ID."},"backupType":{"$ref":"#/components/schemas/BackupJobTypeFilters","description":"Filters for the backup job type."},"startTime":{"$ref":"#/components/schemas/StartTimeDateFilters","description":"Filters for the backup job start time."},"endTime":{"$ref":"#/components/schemas/EndTimeDateFilters","description":"Filters for the backup job end time."}},"title":"BackupJobsFilterConditions"},"BackupJobSortField":{"type":"string","enum":["createdTime","startTime","endTime"],"description":"Field to sort by.","title":"BackupJobSortField"},"SortBackupJobBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/BackupJobSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortBackupJobBy"},"ListBackupJobsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/BackupJobsFilterConditions"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortBackupJobBy"}}},"title":"ListBackupJobsRequest"},"ListBackupJobsResponse":{"type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/BackupJob"},"description":"List of retrieved backup jobs."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of backup jobs that matched the filter options."}},"required":["jobs","totalCount"],"title":"ListBackupJobsResponse"},"AwsEc2InstanceRestoreResult":{"type":"object","properties":{"instanceId":{"type":"string","description":"ID of the restored EC2 instance."}},"required":["instanceId"],"title":"AwsEc2InstanceRestoreResult"},"AwsEbsVolumeRestoreResult":{"type":"object","properties":{"volumeId":{"type":"string","description":"ID of the restored EBS volume."}},"required":["volumeId"],"title":"AwsEbsVolumeRestoreResult"},"AzureDiskRestoreResult":{"type":"object","properties":{"diskId":{"type":"string","description":"ID of the restored Azure disk."}},"required":["diskId"],"title":"AzureDiskRestoreResult"},"AzureVmInstanceRestoreResult":{"type":"object","properties":{"instanceId":{"type":"string","description":"ID of the restored VM instance."}},"required":["instanceId"],"title":"AzureVmInstanceRestoreResult"},"GcpVmInstanceRestoreResult":{"type":"object","properties":{"instanceId":{"type":"string","description":"ID of the restored VM instance."}},"required":["instanceId"],"title":"GcpVmInstanceRestoreResult"},"GcpBigQueryDatasetRestoreResult":{"type":"object","properties":{"datasetId":{"type":"string","description":"ID of the restored BigQuery dataset."}},"required":["datasetId"],"title":"GcpBigQueryDatasetRestoreResult"},"RestoreResult":{"type":"object","properties":{"awsEc2Instance":{"$ref":"#/components/schemas/AwsEc2InstanceRestoreResult"},"awsEbsVolume":{"$ref":"#/components/schemas/AwsEbsVolumeRestoreResult"},"azureDisk":{"$ref":"#/components/schemas/AzureDiskRestoreResult"},"azureVmInstance":{"$ref":"#/components/schemas/AzureVmInstanceRestoreResult"},"gcpVmInstance":{"$ref":"#/components/schemas/GcpVmInstanceRestoreResult"},"gcpBigQuery":{"$ref":"#/components/schemas/GcpBigQueryDatasetRestoreResult"}},"title":"RestoreResult"},"DestinationDetails":{"type":"object","properties":{"restoreAccountId":{"type":"string","description":"Eon-assigned restore account ID."},"providerAccountId":{"type":"string","description":"Cloud-provider-assigned restore account ID."},"cloudProvider":{"$ref":"#/components/schemas/Provider"},"region":{"type":"string","description":"Region the data is restored to."},"restoreResult":{"$ref":"#/components/schemas/RestoreResult"}},"required":["restoreAccountId","providerAccountId","cloudProvider","region"],"title":"DestinationDetails"},"RestoreJobVault":{"oneOf":[{"$ref":"#/components/schemas/BackupVault"}],"description":"Information about the vault the snapshot is being restored from.","title":"RestoreJobVault"},"RestoreJobType":{"type":"string","enum":["RESTORE_JOB_TYPE_UNSPECIFIED","AWS_S3_OBJECT_RESTORE","AWS_S3_BUCKET_RESTORE","AWS_EC2_FILE_RESTORE","AWS_EC2_INSTANCE_RESTORE","AWS_EC2_AMI_CONVERT","AWS_EC2_EBS_VOLUME_RESTORE","AWS_EC2_EBS_SNAPSHOT_CONVERT","AWS_EC2_RECORD_RESTORE","AWS_RDS_INSTANCE_RESTORE","AWS_RDS_RECORD_RESTORE","AWS_EKS_NAMESPACE_RESTORE","AWS_EKS_NAMESPACE_RECORD_RESTORE","AWS_EKS_FILE_RESTORE","AWS_DYNAMO_DB_TABLE_RESTORE","AWS_DYNAMO_DB_TABLE_TO_EXISTING_TABLE_RESTORE","AWS_DYNAMO_DB_RECORD_RESTORE","AZURE_STORAGE_ACCOUNT_RESTORE","AZURE_STORAGE_ACCOUNT_BLOB_RESTORE","AZURE_VM_FILE_RESTORE","AZURE_VM_DISK_RESTORE","AZURE_VM_INSTANCE_RESTORE","AZURE_VM_RECORD_RESTORE","AZURE_SQL_DATABASE_RECORD_RESTORE","AZURE_SQL_DATABASE_RESTORE","AZURE_SQL_VM_INSTANCE_RESTORE","AZURE_SQL_VM_RECORD_RESTORE","GCP_CLOUD_STORAGE_BUCKET_RESTORE","GCP_CLOUD_STORAGE_OBJECT_RESTORE","GCP_COMPUTE_ENGINE_FILE_RESTORE","GCP_COMPUTE_ENGINE_DISK_RESTORE","GCP_COMPUTE_ENGINE_INSTANCE_RESTORE","GCP_COMPUTE_ENGINE_RECORD_RESTORE","GCP_CLOUD_SQL_DATABASE_RESTORE","GCP_CLOUD_SQL_RECORD_RESTORE","GCP_BIGQUERY_DATASET_RESTORE","GCP_BIGQUERY_RECORD_RESTORE","GCP_BIGQUERY_NATIVE_RESTORE_DATASET","GCP_BIGQUERY_NATIVE_RESTORE_TABLE","RDS_NATIVE_PITR_RESTORE","AWS_FSX_RESTORE","ATLAS_CLUSTER_RESTORE","ATLAS_CLUSTER_RECORD_RESTORE"],"description":"Type of restore.\nThis value is a combination of the cloud provider, resource type, and restore method.\n`RESTORE_JOB_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"RestoreJobType"},"RestoreJob":{"type":"object","properties":{"jobExecutionDetails":{"$ref":"#/components/schemas/JobExecutionDetails","description":"Information about the restore job."},"resourceDetails":{"$ref":"#/components/schemas/ResourceDetails","description":"Information about the resource being restored.\nRepresents the resource's state at the time it was backed up.\n"},"snapshotDetails":{"$ref":"#/components/schemas/JobSnapshotDetails","description":"Information about the Eon snapshot being restored."},"destinationDetails":{"$ref":"#/components/schemas/DestinationDetails"},"vault":{"oneOf":[{"$ref":"#/components/schemas/RestoreJobVault"},{"type":"null"}],"description":"Information about the vault the snapshot is being restored from."},"restoreType":{"$ref":"#/components/schemas/RestoreJobType","description":"Type of restore.\nValue represents the cloud provider, resource type, and restore method.\n"}},"required":["jobExecutionDetails","destinationDetails","restoreType"],"title":"RestoreJob"},"GetRestoreJobResponse":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/RestoreJob"}},"required":["job"],"title":"GetRestoreJobResponse"},"RestoreJobTypeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/RestoreJobType"},"description":"Matches if any item in this list equals `restoreType`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/RestoreJobType"},"description":"Matches if no item in this list equals `restoreType`."}},"title":"RestoreJobTypeFilters"},"RestoreJobsFilterConditions":{"type":"object","properties":{"jobId":{"oneOf":[{"$ref":"#/components/schemas/JobIdFilters"},{"type":"null"}],"description":"Filters for the restore job ID."},"snapshotId":{"$ref":"#/components/schemas/SnapshotIdFilters","description":"Filters for the Eon snapshot ID."},"status":{"$ref":"#/components/schemas/JobStatusFilters","description":"Filters for the restore job status."},"providerResourceId":{"$ref":"#/components/schemas/ResourceIdFilters","description":"Filters for the cloud-provider-assigned resource ID."},"restoreType":{"$ref":"#/components/schemas/RestoreJobTypeFilters","description":"Filters for the restore job type."},"startTime":{"$ref":"#/components/schemas/StartTimeDateFilters","description":"Filters for the restore job start time."},"endTime":{"$ref":"#/components/schemas/EndTimeDateFilters","description":"Filters for the restore job end time."}},"description":"Filter conditions.\nIf omitted, no filtering is applied.\n","title":"RestoreJobsFilterConditions"},"RestoreJobSortField":{"type":"string","enum":["createdTime","startTime","endTime"],"description":"Field to sort by.","title":"RestoreJobSortField"},"SortRestoreJobBy":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/RestoreJobSortField"},"order":{"$ref":"#/components/schemas/SortOrder"}},"required":["field","order"],"description":"List of sorting options.\nSorting is applied in the order passed in the list.\n","title":"SortRestoreJobBy"},"ListRestoreJobsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/RestoreJobsFilterConditions"},"sorts":{"type":"array","items":{"$ref":"#/components/schemas/SortRestoreJobBy"}}},"title":"ListRestoreJobsRequest"},"ListRestoreJobsResponse":{"type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/RestoreJob"},"description":"List of retrieved restore jobs."},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"},"totalCount":{"type":"integer","description":"Total number of restore jobs that matched the filter options."}},"required":["jobs","totalCount"],"title":"ListRestoreJobsResponse"},"CostUnit":{"type":"string","enum":["CREDITS","USD","UNSPECIFIED"],"default":"CREDITS","description":"Currency unit for cost amounts.\nUse `CREDITS` for Eon credits and `USD` for U.S. dollars.\n`UNSPECIFIED` is supported only in responses.\n","title":"CostUnit"},"UsageUnit":{"type":"string","enum":["BYTE_MONTHS","BYTES","UNSPECIFIED"],"default":"BYTE_MONTHS","description":"Whether usage is returned in byte-months, raw bytes, operations, or object-months for the specified `timeFrame`.\n`UNSPECIFIED` is supported only in responses.\n","title":"UsageUnit"},"TimeFrame":{"type":"object","properties":{"startTime":{"type":"string","format":"date-time","description":"Start time for the cost data query in ISO 8601 format.\nMust be at least 24 hours before end time.\n"},"endTime":{"type":"string","format":"date-time","description":"End time for the cost data query in ISO 8601 format.\n"}},"required":["startTime","endTime"],"title":"TimeFrame"},"CostGranularity":{"type":"string","enum":["HOURLY","DAILY","MONTHLY","TOTAL"],"default":"MONTHLY","description":"Time granularity for aggregating cost data.","title":"CostGranularity"},"SourceAccountProviderIdFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list equals `sourceAccountProviderId`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list equal `sourceAccountProviderId`."}},"title":"SourceAccountProviderIdFilters"},"CostDataFilters":{"type":"object","properties":{"sourceAccountProviderId":{"$ref":"#/components/schemas/SourceAccountProviderIdFilters","description":"Filters for the cloud-provider-assigned account IDs.\n"},"cloudProvider":{"$ref":"#/components/schemas/CloudProviderFilters","description":"Filters for cloud providers.\n"},"resourceType":{"$ref":"#/components/schemas/ResourceTypeFilters","description":"Filters for specific resource types.\n"},"resourceId":{"$ref":"#/components/schemas/IdFilters","description":"Filters for Eon-assigned resource IDs.\n"},"tagKeys":{"$ref":"#/components/schemas/TagKeysFilters","description":"Filters for resource tag keys.\n"},"tagKeyValues":{"$ref":"#/components/schemas/TagKeyValuesFilters","description":"Filters for resource tag key-value pairs.\n"}},"title":"CostDataFilters"},"CostDataGroupBy":{"type":"string","enum":["SOURCE_ACCOUNT","CLOUD_PROVIDER","RESOURCE_TYPE","RESOURCE","RESOURCE_AND_VAULT"],"default":"SOURCE_ACCOUNT","description":"Dimension to group cost data by in the response.\n","title":"CostDataGroupBy"},"QueryCostDataRequest":{"type":"object","properties":{"costUnit":{"$ref":"#/components/schemas/CostUnit","default":"CREDITS"},"usageUnit":{"$ref":"#/components/schemas/UsageUnit","default":"BYTE_MONTHS"},"timeFrame":{"$ref":"#/components/schemas/TimeFrame","description":"Time range to retrieve cost data for.\n"},"granularity":{"$ref":"#/components/schemas/CostGranularity","default":"MONTHLY","description":"Time granularity for cost aggregation.\n"},"filters":{"$ref":"#/components/schemas/CostDataFilters","description":"Filter conditions for cost data query.\nIf omitted, no filtering is applied.\n"},"groupBy":{"$ref":"#/components/schemas/CostDataGroupBy","default":"SOURCE_ACCOUNT","description":"Dimensions to group cost data by.\n"},"topN":{"type":"integer","minimum":1,"description":"Limits the response to the top _n_ resources by total cost over `timeFrame`, and folds all other matching resources into one aggregated record per time period in `granularity`.\nUse this when a resource-level query would return too many records—for example, to build an efficient top-spenders chart without requesting every resource for every period.\n\nApplies only when grouping by `RESOURCE` or `RESOURCE_AND_VAULT`.\nOtherwise, ignored.\nOmit to return all matching resources.\n\nAggregated records have no dimensions and typically have `resourceCount` greater than 1.\n"}},"required":["timeFrame"],"title":"QueryCostDataRequest"},"CostDataRecordDimensions":{"type":"object","properties":{"cloudProvider":{"$ref":"#/components/schemas/Provider","description":"Cloud provider where the costs were incurred."},"resourceType":{"$ref":"#/components/schemas/ResourceType","description":"Type of cloud resource that generated the costs."},"resourceId":{"type":"string","format":"uuid","description":"Eon-assigned resource ID.\n"},"sourceAccountProviderId":{"type":"string","description":"Cloud-provider-assigned account ID for the source account.\n"}},"description":"Grouping dimensions that categorize this cost record.\nContains metadata about the cloud provider, resource type, resource ID, and source account that generated these costs.\n","title":"CostDataRecordDimensions"},"MeteringDimension":{"type":"string","enum":["AWS_EC2_METERING_DIMENSION","AWS_EC2_NATIVE_METERING_DIMENSION","AWS_RDS_METERING_DIMENSION","AWS_S3_METERING_DIMENSION","AWS_DYNAMO_DB_METERING_DIMENSION","AWS_EKS_METERING_DIMENSION","AZURE_VIRTUAL_MACHINE_METERING_DIMENSION","AZURE_STORAGE_ACCOUNT_METERING_DIMENSION","AZURE_SQL_VIRTUAL_MACHINE_METERING_DIMENSION","AZURE_SQL_DATABASE_METERING_DIMENSION","AZURE_POSTGRESQL_METERING_DIMENSION","GCP_VM_INSTANCE_METERING_DIMENSION","GCP_CLOUD_STORAGE_METERING_DIMENSION","GCP_CLOUD_SQL_POSTGRES_SQL_METERING_DIMENSION","GCP_CLOUD_SQL_MYSQL_METERING_DIMENSION","GCP_CLOUD_SQL_SQL_SERVER_METERING_DIMENSION","GCP_BIG_QUERY_METERING_DIMENSION","MONGO_ATLAS_CLUSTER_METERING_DIMENSION","DATA_TRANSFER_METERING_DIMENSION","CLASSIFICATION_METERING_DIMENSION","AWS_EC2_TO_AZURE_VAULT_METERING_DIMENSION","AWS_S3_TO_AZURE_VAULT_METERING_DIMENSION","AWS_RDS_TO_AZURE_VAULT_METERING_DIMENSION","AWS_DYNAMO_DB_TO_AZURE_VAULT_METERING_DIMENSION","AWS_EKS_TO_AZURE_VAULT_METERING_DIMENSION","AZURE_VIRTUAL_MACHINE_TO_AWS_VAULT_METERING_DIMENSION","AZURE_STORAGE_ACCOUNT_TO_AWS_VAULT_METERING_DIMENSION","AZURE_SQL_VIRTUAL_MACHINE_TO_AWS_VAULT_METERING_DIMENSION","GCP_VM_INSTANCE_TO_AZURE_VAULT_METERING_DIMENSION","GCP_CLOUD_STORAGE_TO_AZURE_VAULT_METERING_DIMENSION","AWS_EC2_TO_GCP_VAULT_METERING_DIMENSION","AWS_S3_TO_GCP_VAULT_METERING_DIMENSION","AWS_EKS_TO_GCP_VAULT_METERING_DIMENSION","AZURE_VIRTUAL_MACHINE_TO_GCP_VAULT_METERING_DIMENSION","AZURE_STORAGE_ACCOUNT_TO_GCP_VAULT_METERING_DIMENSION","GCP_VM_INSTANCE_TO_AWS_VAULT_METERING_DIMENSION","GCP_CLOUD_STORAGE_TO_AWS_VAULT_METERING_DIMENSION","STORAGE_GATEWAY_METERING_DIMENSION","RANSOMWARE_PROTECTED_STORAGE_METERING_DIMENSION"],"description":"Type of resource usage being metered and billed across different cloud providers.\nEach dimension represents a specific billable resource type, such as compute instances, storage volumes, database services, or data transfer.\nUsed to categorize costs by service type for detailed analysis and chargeback reporting.\n","title":"MeteringDimension"},"Cost":{"type":"object","properties":{"amount":{"type":"number","format":"double","minimum":0,"description":"Cost amount in the specified currency unit.\n1 credit is equivalent to 0.01 USD.\n"},"unit":{"$ref":"#/components/schemas/CostUnit","description":"Currency unit."}},"required":["amount","unit"],"title":"Cost"},"Usage":{"type":"object","properties":{"amount":{"type":"number","format":"double","minimum":0,"description":"Raw usage quantity that generated the cost.\n"},"unit":{"$ref":"#/components/schemas/UsageUnit","description":"Unit of measurement for the usage amount"}},"required":["amount","unit"],"description":"Raw usage amount and unit that generated the associated cost.","title":"Usage"},"CostDataRecordCost":{"type":"object","properties":{"meteringDimension":{"$ref":"#/components/schemas/MeteringDimension"},"cost":{"$ref":"#/components/schemas/Cost"},"usage":{"$ref":"#/components/schemas/Usage"}},"required":["meteringDimension","cost","usage"],"description":"Cost and usage breakdown for a specific billable usage type.\n","title":"CostDataRecordCost"},"CostDataRecord":{"type":"object","properties":{"recordTimeFrame":{"$ref":"#/components/schemas/TimeFrame","description":"Time period covered by the cost record.\nAligns with the requested granularity.\n"},"resourceCount":{"type":"integer","minimum":0,"description":"Number of unique resources that contributed to costs in this record's time frame.\n"},"dimensions":{"$ref":"#/components/schemas/CostDataRecordDimensions","description":"Grouping dimensions for the cost record.\n"},"costs":{"type":"array","items":{"$ref":"#/components/schemas/CostDataRecordCost"},"description":"Array of cost breakdowns by metering dimension.\n"}},"required":["recordTimeFrame","costs"],"description":"Total cost for this metering dimension in the specified currency unit.","title":"CostDataRecord"},"QueryCostDataResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/CostDataRecord"},"description":"Array of cost data records matching the requested query criteria.\nEach record contains cost and usage information grouped by the specified dimensions and time granularity.\n"},"totalCount":{"type":"integer","minimum":0,"description":"Total number of cost records that matched the time frame and filter options.\n"},"resourceCount":{"type":"integer","minimum":0,"description":"Total number of resources that incurred costs during the specified time frame.\n"},"nextToken":{"type":"string","description":"Cursor that points to the first record of the next page of results.\nPass this value in the next request.\n"}},"required":["records","totalCount","resourceCount"],"title":"QueryCostDataResponse"},"QueryCostDataRequestBadRequestError":{"type":"object","properties":{"error":{"type":"string"}},"title":"QueryCostDataRequestBadRequestError"},"DailyStorageSummary":{"type":"object","properties":{"summaryDay":{"type":"string","format":"date-time","description":"Date the storage is calculated for."},"dailyStorageBytes":{"type":"integer","format":"int64","description":"Total snapshot storage for the day, in bytes."}},"required":["summaryDay","dailyStorageBytes"],"title":"DailyStorageSummary"},"DailyStorageSummaries":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DailyStorageSummary"},"description":"List of daily storage summaries."}},"required":["data"],"title":"DailyStorageSummaries"}},"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer"}}}}