{"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 weren't 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 weren't 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":"Updates a role.\n\nThis operation replaces the entire role object.\nOmitted fields are overwritten.\n","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 wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"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 wasn't 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 wasn't 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.","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/rules":{"post":{"operationId":"actionApprovals_createActionApprovalRule","summary":"Create Action Approval Rule","description":"Creates an action approval rule.","tags":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action approval rule 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"}}],"responses":{"201":{"description":"Action approval rule created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateActionApprovalRuleResponse"}}}},"400":{"description":"Invalid action approval rule configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateActionApprovalRuleRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/action-approvals/rules/{actionApprovalRuleId}":{"get":{"operationId":"actionApprovals_getActionApprovalRule","summary":"Get Action Approval Rule","description":"Retrieves an action approval rule.","tags":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action approval rule is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"actionApprovalRuleId","in":"path","description":"Action approval rule ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Action approval rule retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetActionApprovalRuleResponse"}}}},"404":{"description":"Action approval rule wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"actionApprovals_updateActionApprovalRule","summary":"Update Action Approval Rule","description":"Updates an action approval rule. Only fields included in the request are changed.\n","tags":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action approval rule 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":"actionApprovalRuleId","in":"path","description":"Action approval rule ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Action approval rule updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActionApprovalRuleResponse"}}}},"400":{"description":"Invalid action approval rule configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Action approval rule wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateActionApprovalRuleRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"actionApprovals_deleteActionApprovalRule","summary":"Delete Action Approval Rule","description":"Deletes an action approval rule.","tags":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action approval rule is in.\nYou can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page.\n","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"actionApprovalRuleId","in":"path","description":"Action approval rule ID.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Action approval rule deleted.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Action approval rule wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/action-approvals/rules/list":{"post":{"operationId":"actionApprovals_listActionApprovalRules","summary":"List Action Approval Rules","description":"Retrieves a list of action approval rules for the specified project.","tags":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project whose action approval rules 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":"Action approval rules retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListActionApprovalRulesResponse"}}}},"400":{"description":"Invalid pagination parameters or operation filter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListActionApprovalRulesRequest"}}}},"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":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action request 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":"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":"Submits or discards 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":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action request 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":"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":"Cancels 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":["Action Approvals"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the action request 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":"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":["Connected 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":"Retrieves a source account.","tags":["Connected Accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the source account 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":"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":["Connected Accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the source account 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":"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":["Connected 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 in the specified project.","tags":["Connected 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":{"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":["Connected 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":["Connected 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":["Connected 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 in the specified project.","tags":["Connected 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":["Connected 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":["Connected 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":["Connected 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":["Connected 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":["Connected 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":["Connected 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":"Retrieves a restore account.","tags":["Connected Accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"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":["Connected Accounts"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"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":["Connected 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 in the specified project.","tags":["Connected 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":{"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":["Connected 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":["Connected 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":["Connected 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 wasn't 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\nThis operation replaces the entire connectivity configuration object.\nOmitted fields are overwritten.\n","tags":["Connected 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":"Eon-assigned 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 wasn't 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":["Connected 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 wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/aws/s3-buckets":{"get":{"operationId":"listS3Buckets","summary":"List S3 Buckets","description":"Retrieves a list of S3 buckets available to Eon in the restore account.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Buckets retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/S3Buckets"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/regions/{region}/encryption-keys":{"get":{"operationId":"listEncryptionKeys","summary":"List Encryption Keys","description":"Retrieves a list of encryption keys available to Eon in the specified region of the restore account.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"path","description":"Region where the encryption keys are located.","required":true,"schema":{"type":"string"}},{"name":"includeAwsManagedKeys","in":"query","description":"Whether to include AWS-managed keys in the response.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Encryption keys retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncryptionKeys"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/regions/{region}/aws-security-groups":{"get":{"operationId":"listAwsSecurityGroups","summary":"List Security Groups","description":"Retrieves a list of security groups available to Eon in the specified region of the restore account.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"path","description":"Region where the security groups are located.","required":true,"schema":{"type":"string"}},{"name":"vpcId","in":"query","description":"ID of the VPC to filter security groups by.","required":false,"schema":{"type":"string"}},{"name":"subnetId","in":"query","description":"ID of the subnet to filter security groups by.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Security groups retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreSecurityGroups"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/regions/{region}/aws-subnets-v2":{"get":{"operationId":"listAwsSubnetsV2","summary":"List Subnets","description":"Retrieves a list of subnets available to Eon in the specified region of the restore account.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"path","description":"Region where the subnets are located.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Subnets retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSubnetsResponseV2"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/regions/{region}/aws-vpcs":{"get":{"operationId":"listAwsVpcs","summary":"List VPCs","description":"Retrieves a list of VPCs available to Eon in the specified region of the restore account.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"path","description":"Region where the VPCs are located.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"VPCs retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAwsVpcsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/projects/{projectId}/restore-accounts/{accountId}/regions/{region}/aws-instance-types":{"get":{"operationId":"listAwsInstanceTypes","summary":"List Instance Types","description":"Retrieves a list of EC2 instance types available for restore in the specified subnet and region.","parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore account 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":"accountId","in":"path","description":"Eon-assigned ID of the restore account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"path","description":"Region where the subnet is located.","required":true,"schema":{"type":"string"}},{"name":"subnetId","in":"query","description":"ID of the subnet whose instance types you want to list.","required":true,"schema":{"type":"string"}},{"name":"volumeCount","in":"query","description":"Number of guest volumes you plan to restore.\nUsed to size the host-memory reserve for instant-restore host selection.\nIf omitted, the server uses a default.\n","required":false,"schema":{"type":"integer","minimum":0}},{"name":"totalVolumeBytes","in":"query","description":"Total size of the guest volumes you plan to restore, in bytes.\nUsed to size the host-memory reserve.\nIf omitted, the server uses a default.\n","required":false,"schema":{"type":"integer","format":"int64","minimum":0}}],"responses":{"200":{"description":"Instance types retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListInstanceTypesResponse"}}}}},"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":["Connected 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 in the specified project.","tags":["Connected 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":["Connected 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":["Connected 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}/inventory/restore-templates":{"post":{"operationId":"restoreTemplates_createRestoreTemplate","summary":"Create Restore Template","description":"Creates a restore template.","tags":["restoreTemplates"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore template 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"}}],"responses":{"201":{"description":"Restore template created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestoreTemplateResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestoreTemplateRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/restore-template/{restoreTemplateId}/bulk-attach":{"post":{"operationId":"restoreTemplates_bulkAttachRestoreTemplate","summary":"Bulk Attach Restore Template","description":"Attaches a restore template to multiple resources.\n\nExisting restore template assignments on the resources are overwritten.\n","tags":["restoreTemplates"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the restore template 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":"restoreTemplateId","in":"path","description":"ID of the restore template to attach to the resources.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Restore template attached.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid request.\nTypically this indicates that the restore template type is incompatible with a resource type.\n","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Restore template wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAttachRestoreTemplateRequest"}}}},"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":["Connected 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":["Connected 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":["Connected 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.","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 in the specified 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":"Sets a resource's data classes manually, 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":"Sets a resource's environment manually, 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 wasn't 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}/resources/{id}/object-store-scan-method":{"get":{"operationId":"resources_getObjectStoreScanMethod","summary":"Get Object-Store Scan Method","description":"Retrieves the scan mode and change detection mode for an Amazon S3 bucket or Google Cloud Storage bucket.\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 Amazon S3 bucket or Google Cloud Storage bucket to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Settings retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetObjectStoreScanMethodResponse"}}}},"400":{"description":"Invalid request. Typically this indicates that the resource type doesn't support scan mode and change detection mode settings.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Project or resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"resources_updateObjectStoreScanMethod","summary":"Update Object-Store Scan Method","description":"Updates the scan mode and change detection mode for an Amazon S3 bucket or Google Cloud Storage bucket.\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 Amazon S3 bucket or Google Cloud Storage bucket to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateObjectStoreScanMethodResponse"}}}},"400":{"description":"Invalid request. Typically this indicates an invalid request body or parameters, or an unsupported resource type.","content":{"application/json":{"schema":{"description":"Any type"}}}},"403":{"description":"Insufficient permissions to update the requested settings.","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Project or resource wasn't found.","content":{"application/json":{"schema":{"description":"Any type"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateObjectStoreScanMethodRequest"}}}},"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"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListVaultsRequest"}}}},"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":["Backup Policies"],"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":["Backup Policies"],"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.\n\nThis operation replaces the entire backup policy object.\nOmitted fields are overwritten.\n","tags":["Backup Policies"],"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":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBackupPolicyRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"backupPolicies_deleteBackupPolicy","summary":"Delete Backup Policy","description":"Deletes a backup policy.","tags":["Backup Policies"],"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":["Backup Policies"],"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":{"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\nThis operation replaces the entire backup posture control object.\nOmitted fields are overwritten 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":{"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}/finding-exclusions":{"post":{"operationId":"findingExclusions_createFindingExclusion","summary":"Create Finding Exclusion","description":"Excludes matching files, tables, or databases from threat detection.\n\nThe exclusion can be scoped either to a single resource or to all resources in the Eon account.\nCreating an exclusion has no effect on in-progress scans.\n","tags":["Finding Exclusions"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the finding exclusion 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"}}],"responses":{"201":{"description":"Finding exclusion created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFindingExclusionResponse"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"The resource wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"More than one resource in the account has this provider resource ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFindingExclusionRequest"}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/finding-exclusions/{findingExclusionId}":{"get":{"operationId":"findingExclusions_getFindingExclusion","summary":"Get Finding Exclusion","description":"Retrieves a finding exclusion.","tags":["Finding Exclusions"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the finding exclusion 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":"findingExclusionId","in":"path","description":"ID of the finding exclusion to retrieve.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Finding exclusion retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFindingExclusionResponse"}}}},"404":{"description":"Finding exclusion wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"findingExclusions_updateFindingExclusion","summary":"Update Finding Exclusion","description":"Updates a finding exclusion.\n\nThis operation replaces the entire finding exclusion object.\nOmitted fields are overwritten.\nUpdating an exclusion has no effect on in-progress scans.\n","tags":["Finding Exclusions"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the finding exclusion 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":"findingExclusionId","in":"path","description":"ID of the finding exclusion to update.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Finding exclusion updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFindingExclusionResponse"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Project, finding exclusion, or resource wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The specified cloud-provider-assigned resource ID belongs to more than one resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFindingExclusionRequest"}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"findingExclusions_deleteFindingExclusion","summary":"Delete Finding Exclusion","description":"Deletes a finding exclusion.\n\nDeleting an exclusion has no effect on in-progress scans.\n","tags":["Finding Exclusions"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the finding exclusion 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":"findingExclusionId","in":"path","description":"ID of the finding exclusion to delete.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Finding exclusion deleted.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Finding exclusion wasn't found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/v1/projects/{projectId}/finding-exclusions/list":{"post":{"operationId":"findingExclusions_listFindingExclusions","summary":"List Finding Exclusions","description":"Retrieves a list of finding exclusions in the Eon account.","tags":["Finding Exclusions"],"parameters":[{"name":"projectId","in":"path","description":"ID of the project the finding exclusions are 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":"pageToken","in":"query","description":"Cursor that points to the first record of the next page of results.\nGet this value from the previous response, and send it with the same `pageSize` and request body.\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,"maximum":200,"default":50}}],"responses":{"200":{"description":"Finding exclusions retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFindingExclusionsResponse"}}}},"400":{"description":"Invalid request. Typically this indicates invalid filters or pagination parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFindingExclusionsRequest"}}}},"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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreJobInitiationResponse"}}}},"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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreJobInitiationResponse"}}}},"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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreJobInitiationResponse"}}}},"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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":"An 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\nApplicable only when the method is protected by an [action approval policy].\n\n[action approval policy]: /api/using-the-api/action-approvals\n","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/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":["Database Snapshots"],"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":["Database Snapshots"],"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":["Database Snapshots"],"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.","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 in the specified 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":{"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.","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 in the specified 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":{"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":"Action Approvals","description":"Require approval before sensitive actions can run."},{"name":"Connected Accounts","description":"Manage connected cloud accounts onboarded to Eon."},{"name":"restoreTemplates"},{"name":"Resources","description":"Discover and manage protected cloud resources."},{"name":"Vaults","description":"Manage backup vaults that store snapshots."},{"name":"backups"},{"name":"Backup Policies","description":"Define and manage backup policies and schedules."},{"name":"backupPostureControls"},{"name":"Snapshots","description":"Manage resource snapshots and point-in-time recovery points."},{"name":"Finding Exclusions","description":"Stop threat detectors from reporting findings for chosen files, tables and databases."},{"name":"Database Snapshots","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"}],"webhooks":{"webhooks_webhookV1NotificationTest":{"post":{"operationId":"webhooks_webhookV1NotificationTest","summary":"Test Notification","description":"Reports a test notification.\n\nEon sends this request once, when you configure a notification policy with a webhook, to confirm that Eon can deliver to your endpoint.\nFor more information, see [About Notification Policies] and [Manage Notification Policies for Webhooks].\n\nFor details about handling webhooks, see [Webhooks].\n\n[About Notification Policies]: /data-protection/integrations/notifications/about-notification-policies/\n[Manage Notification Policies for Webhooks]: /data-protection/integrations/notifications/manage-notification-policies/webhooks\n[Webhooks]: /api/using-the-api/webhooks\n","parameters":[{"name":"X-Eon-Notification-Type","in":"header","description":"Message type, the same as the body's `type`.","required":false,"schema":{"type":"string"}},{"name":"X-Eon-Timestamp","in":"header","description":"RFC 3339 timestamp, the same as the body's `timestamp`.","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookV1OnboardingPayload"}}}}}},"webhooks_webhookV1NotificationEvent":{"post":{"operationId":"webhooks_webhookV1NotificationEvent","summary":"Event Notification","description":"Reports an event notification.\n\nEon sends this request when an event you're subscribed to occurs, which you configure with notification policies.\nFor more information, see [About Notification Policies] and [Manage Notification Policies for Webhooks].\n\nFor details about handling webhooks, see [Webhooks].\n\n[About Notification Policies]: /data-protection/integrations/notifications/about-notification-policies/\n[Manage Notification Policies for Webhooks]: /data-protection/integrations/notifications/manage-notification-policies/webhooks\n[Webhooks]: /api/using-the-api/webhooks\n","parameters":[{"name":"X-Eon-Notification-Id","in":"header","description":"Notification ID, the same as the body's `id`.","required":false,"schema":{"type":"string"}},{"name":"X-Eon-Notification-Type","in":"header","description":"Notification type, the same as the body's `type`.","required":false,"schema":{"type":"string"}},{"name":"X-Eon-Timestamp","in":"header","description":"RFC 3339 timestamp, the same as the body's `timestamp`.","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookV1StandardPayload"}}}}}},"webhooks_webhookV1AuditLog":{"post":{"operationId":"webhooks_webhookV1AuditLog","summary":"Audit Log Event","description":"Reports an audit log event.\n\nEon sends this request when you've subscribed a webhook to auditable events, which you configure with notification policies.\nFor more information, see [About Notification Policies] and [Manage Notification Policies for Webhooks].\n\nFor details about handling webhooks, see [Webhooks].\n\n[About Notification Policies]: /data-protection/integrations/notifications/about-notification-policies/\n[Manage Notification Policies for Webhooks]: /data-protection/integrations/notifications/manage-notification-policies/webhooks\n[Webhooks]: /api/using-the-api/webhooks\n","responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookV1AuditPayload"}}}}}}},"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":"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":"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","sensitivity_level.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":"Operator that 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":"Operator that evaluates whether the original list contains 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`, `CREDENTIALS`.\n","title":"DataClass"},"DataClassesCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"dataClasses":{"type":"array","items":{"$ref":"#/components/schemas/DataClass"},"description":"Data classes to evaluate."}},"required":["operator","dataClasses"],"title":"DataClassesCondition"},"Environment":{"type":"string","enum":["PROD","PROD_INTERNAL","STAGE","ENVIRONMENT_UNSPECIFIED"],"description":"Resource 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"},"description":"Environments to evaluate."}},"required":["operator","environments"],"title":"EnvironmentCondition"},"AppsCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"apps":{"type":"array","items":{"type":"string"},"description":"Apps to evaluate."}},"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"},"description":"Cloud providers to evaluate."}},"required":["operator","cloudProviders"],"title":"CloudProviderCondition"},"AccountIdCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"accountIds":{"type":"array","items":{"type":"string"},"description":"Cloud-provider-assigned account IDs to evaluate."}},"required":["operator","accountIds"],"title":"AccountIdCondition"},"RegionCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"regions":{"type":"array","items":{"type":"string"},"description":"Source regions to evaluate."}},"required":["operator","regions"],"title":"RegionCondition"},"VpcCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"vpcs":{"type":"array","items":{"type":"string"},"description":"Cloud-provider-assigned VPC IDs to evaluate."}},"required":["operator","vpcs"],"title":"VpcCondition"},"SubnetsCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"subnets":{"type":"array","items":{"type":"string"},"description":"Cloud-provider-assigned subnet IDs to evaluate."}},"required":["operator","subnets"],"title":"SubnetsCondition"},"ResourceGroupNameCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"resourceGroupNames":{"type":"array","items":{"type":"string"},"description":"Resource group names to evaluate."}},"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":"Operator that 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"},"description":"Resource names to evaluate."}},"required":["operator","resourceNames"],"title":"ResourceNameCondition"},"ResourceIdCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"resourceIds":{"type":"array","items":{"type":"string"},"description":"Cloud-provider-assigned resource IDs to evaluate."}},"required":["operator","resourceIds"],"title":"ResourceIdCondition"},"TagKeysCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"tagKeys":{"type":"array","items":{"type":"string"},"description":"Tag keys to evaluate."}},"required":["operator","tagKeys"],"title":"TagKeysCondition"},"TagKeyValue":{"type":"object","properties":{"key":{"type":"string","description":"Tag key."},"value":{"type":"string","description":"Tag value."}},"required":["key"],"title":"TagKeyValue"},"TagKeyValuesCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"tagKeyValues":{"type":"array","items":{"$ref":"#/components/schemas/TagKeyValue"},"description":"Tag key-value pairs to evaluate."}},"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"},"RestoreAccountTagSubject":{"type":"string","enum":["TAG_KEYS","TAG_KEY_VALUES"],"description":"What a restore destination tag limit matches its values against.\n","title":"RestoreAccountTagSubject"},"RestoreAccountTagOperator":{"type":"string","enum":["CONTAINS_ANY_OF","CONTAINS_ALL_OF","CONTAINS_NONE_OF"],"description":"How a restore destination tag limit compares its values to the tags on the account.\n","title":"RestoreAccountTagOperator"},"RestoreDestinationTagLimits":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/RestoreAccountTagSubject"},"operator":{"$ref":"#/components/schemas/RestoreAccountTagOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Tag keys when `subject` is `TAG_KEYS`, `key=value` pairs when it is `TAG_KEY_VALUES`.\n"}},"required":["subject","operator","values"],"description":"Limits the restore accounts that can be used as restore destinations for operations granted by the role, using the tags the cloud provider holds against the account (AWS account tags, Azure subscription tags, or GCP project labels).\n\nApplied in combination with `restoreDestinationLimits`, so a destination has to satisfy both.\nMatching is exact on key and value.\nIf Eon discovers no tags for an account, the account satisfies only `CONTAINS_NONE_OF`.\n","title":"RestoreDestinationTagLimits"},"SameSourceAccountRestoreLimits":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the same-source-account restore restriction is active."},"dataAccessRuleId":{"type":"string","description":"If present, ID of an access condition that scopes which resources the restriction applies to.\nOmit to apply the restriction to all resources.\n"}},"required":["enabled"],"description":"Restricts restoring applicable resources to the source account they were backed up from.\n","title":"SameSourceAccountRestoreLimits"},"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"},"restoreDestinationTagLimits":{"$ref":"#/components/schemas/RestoreDestinationTagLimits"},"sameSourceAccountRestoreLimits":{"$ref":"#/components/schemas/SameSourceAccountRestoreLimits"}},"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"},"restoreDestinationTagLimits":{"$ref":"#/components/schemas/RestoreDestinationTagLimits"},"sameSourceAccountRestoreLimits":{"$ref":"#/components/schemas/SameSourceAccountRestoreLimits"}},"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":"Name of the role."},"permissionGrants":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGrantInput"},"description":"Permissions of the role."},"accessConditions":{"type":"array","items":{"$ref":"#/components/schemas/AccessCondition"},"description":"Condition of the role, keyed by name."},"restoreDestinationLimits":{"$ref":"#/components/schemas/RestoreDestinationLimits"},"restoreDestinationTagLimits":{"$ref":"#/components/schemas/RestoreDestinationTagLimits"},"sameSourceAccountRestoreLimits":{"$ref":"#/components/schemas/SameSourceAccountRestoreLimits"}},"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"},"ActionApprovalOperationType":{"type":"string","enum":["ADD_RESTORE_ACCOUNT","CREATE_BACKUP_POLICY","RESTORE_RESOURCE","UPDATE_BACKUP_POLICY","DELETE_BACKUP_POLICY"],"description":"Action that requires approval under the rule.","title":"ActionApprovalOperationType"},"ResourceSelectorMode":{"type":"string","enum":["ALL","NONE","CONDITIONAL"],"title":"ResourceSelectorMode"},"ActionApprovalRuleGroupCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/LogicalOperator","description":"Logical operator used to combine the operands."},"operands":{"type":"array","items":{"$ref":"#/components/schemas/ActionApprovalRuleExpression"},"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"}},"required":["operator","operands"],"description":"Group of expressions evaluated using the logical operator specified in `operator`.\nEach operand can be either a single expression or a nested `group`.\n","title":"ActionApprovalRuleGroupCondition"},"SensitivityLevel":{"type":"string","enum":["PUBLIC","INTERNAL","CONFIDENTIAL","HIGH_RISK_CONFIDENTIAL"],"description":"Effective sensitivity level assigned to a resource.","title":"SensitivityLevel"},"SensitivityAnnotationsCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScalarOperators"},"sensitivityAnnotations":{"type":"array","items":{"$ref":"#/components/schemas/SensitivityLevel"},"description":"Sensitivity levels to evaluate."}},"required":["operator","sensitivityAnnotations"],"title":"SensitivityAnnotationsCondition"},"SecurityScanConclusion":{"type":"string","enum":["CLEAN","HIGH_CHANCE_FOR_RANSOMWARE","DATA_ANOMALY_DETECTED","MALWARE_DETECTED","AI_DATA_RISK_DETECTED","DATA_EXPOSURE_RISK_DETECTED","VULNERABLE_APPLICATION_DETECTED"],"description":"Conclusion of a security scan.","title":"SecurityScanConclusion"},"SecurityScanConclusionCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"securityScanConclusions":{"type":"array","items":{"$ref":"#/components/schemas/SecurityScanConclusion"},"description":"Security scan conclusions to evaluate."}},"required":["operator","securityScanConclusions"],"description":"Security-scan conclusion condition.\nValid only for snapshot-targeted operations.\n","title":"SecurityScanConclusionCondition"},"EncryptionType":{"type":"string","enum":["ENCRYPTION_TYPE_UNSPECIFIED","UNENCRYPTED","PROVIDER_MANAGED_KEY","CUSTOMER_MANAGED_KEY"],"description":"Cloud-agnostic encryption key management classification derived from a resource's volumes or disks.\n`ENCRYPTION_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"EncryptionType"},"EncryptionTypeCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ListOperators"},"encryptionTypes":{"type":"array","items":{"$ref":"#/components/schemas/EncryptionType"},"description":"Encryption types to evaluate."}},"required":["operator","encryptionTypes"],"title":"EncryptionTypeCondition"},"ActionApprovalRuleExpression":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/ActionApprovalRuleGroupCondition"},"resourceType":{"$ref":"#/components/schemas/ResourceTypeCondition"},"dataClasses":{"$ref":"#/components/schemas/DataClassesCondition"},"environment":{"$ref":"#/components/schemas/EnvironmentCondition"},"apps":{"$ref":"#/components/schemas/AppsCondition"},"sensitivityAnnotations":{"$ref":"#/components/schemas/SensitivityAnnotationsCondition"},"securityScanConclusion":{"$ref":"#/components/schemas/SecurityScanConclusionCondition"},"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"},"encryptionType":{"$ref":"#/components/schemas/EncryptionTypeCondition"},"resourceName":{"$ref":"#/components/schemas/ResourceNameCondition"},"resourceId":{"$ref":"#/components/schemas/ResourceIdCondition"},"tagKeys":{"$ref":"#/components/schemas/TagKeysCondition"},"tagKeyValues":{"$ref":"#/components/schemas/TagKeyValuesCondition"}},"description":"Conditional expression used to determine which resources are targeted by an action approval rule.\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":"ActionApprovalRuleExpression"},"ActionApprovalRuleResourceSelector":{"type":"object","properties":{"resourceSelectionMode":{"$ref":"#/components/schemas/ResourceSelectorMode","description":"Mode that determines how entities are selected for action approval.\nTo protect all entities for the operation, set to `ALL`.\nTo protect only specific entities, set to `NONE` and provide IDs in `resourceInclusionOverride`.\nTo dynamically select matching cloud resources or snapshots, set to `CONDITIONAL` and provide conditions in `expression`.\n"},"resourceInclusionOverride":{"type":"array","items":{"type":"string"},"description":"IDs of entities to protect, regardless of resource selection mode.\nWhen resource selection mode is `NONE`, only these resources are protected.\n"},"resourceExclusionOverride":{"type":"array","items":{"type":"string"},"description":"IDs of entities to exclude from protection, regardless of resource selection mode.\nWhen resource selection mode is `ALL`, all entities except these are protected.\n"},"expression":{"$ref":"#/components/schemas/ActionApprovalRuleExpression","description":"Condition selecting the entities the rule applies to.\nRequired when resource selection mode is `CONDITIONAL`.\nIgnored when resource selection mode is `ALL` or `NONE`.\nCan be combined with `resourceInclusionOverride` and `resourceExclusionOverride`.\n"}},"required":["resourceSelectionMode"],"description":"Configuration that determines which entities the action approval rule applies to.\n\nIf the rule applies to backup policies, `CONDITIONAL` selection is unavailable.\n","title":"ActionApprovalRuleResourceSelector"},"CreateActionApprovalRuleRequest":{"type":"object","properties":{"operation":{"$ref":"#/components/schemas/ActionApprovalOperationType"},"requiredApprovals":{"type":"integer","minimum":1,"default":1,"description":"Number of approvals required before the action can be executed."},"approvalWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours the request stays open for approval.\nIf the approvals aren't received before the end of the window, the request expires.\n"},"executionWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours after approval the requester can execute the action.\nIf the requester doesn't execute before the end of the window, the request expires.\n"},"description":{"type":"string","description":"Description explaining the purpose of the rule."},"resourceSelector":{"$ref":"#/components/schemas/ActionApprovalRuleResourceSelector","description":"Selector determining which resources the rule applies to."},"approverIdpId":{"type":"string","format":"uuid","description":"Eon-assigned ID of the identity provider the approver's SAML group belongs to.\nUsed in combination with `approverProviderGroupId`.\n"},"approverProviderGroupId":{"type":"string","description":"Identity-provider-assigned ID of the approver group.\nUsed in combination with `approverIdpId`.\n"},"exemptApiCredentials":{"type":"boolean","description":"Whether API clients bypass the rule or are bound by it.\n\nWhen `true`, API clients bypass the rule and don't require approval to perform the action.\nWhen `false`, API clients are bound like any other user and must get the required approvals.\n"}},"required":["operation","approvalWindowHours","executionWindowHours"],"description":"Configuration for a new action approval rule.","title":"CreateActionApprovalRuleRequest"},"ActionApprovalRule":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the action approval rule."},"projectId":{"type":"string","format":"uuid","description":"ID of the project the action approval rule is in."},"operation":{"$ref":"#/components/schemas/ActionApprovalOperationType","description":"Action that requires approval under the rule."},"requiredApprovals":{"type":"integer","minimum":1,"description":"Number of approvals required before the action can be executed."},"approvalWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours the request stays open for approval before expiring."},"executionWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours after approval the approved action can be executed."},"description":{"type":"string","description":"Description explaining the purpose of the rule."},"resourceSelector":{"$ref":"#/components/schemas/ActionApprovalRuleResourceSelector","description":"Resource selector determining which resources the rule applies to."},"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 approver group.\nUsed in combination with `approverIdpId`.\n"},"exemptApiCredentials":{"type":"boolean","description":"Whether API clients bypass the rule or are bound by it.\n\nWhen `true`, API clients bypass the rule and don't require approval to perform the action.\nWhen `false`, API clients are bound like any other user and must get the required approvals.\n"}},"required":["id","projectId","operation","requiredApprovals","approvalWindowHours","executionWindowHours"],"description":"Rule that determines the approval requirements for a sensitive action.","title":"ActionApprovalRule"},"CreateActionApprovalRuleResponse":{"type":"object","properties":{"actionApprovalRule":{"$ref":"#/components/schemas/ActionApprovalRule","description":"Created action approval rule."}},"required":["actionApprovalRule"],"title":"CreateActionApprovalRuleResponse"},"GetActionApprovalRuleResponse":{"type":"object","properties":{"actionApprovalRule":{"$ref":"#/components/schemas/ActionApprovalRule","description":"Requested action approval rule."}},"required":["actionApprovalRule"],"title":"GetActionApprovalRuleResponse"},"ListActionApprovalRulesRequestFilters":{"type":"object","properties":{"operation":{"$ref":"#/components/schemas/ActionApprovalOperationType"}},"description":"Filter conditions.\nIf omitted, no filtering is applied.\n","title":"ListActionApprovalRulesRequestFilters"},"ListActionApprovalRulesRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/ListActionApprovalRulesRequestFilters","description":"Filter conditions.\nIf omitted, no filtering is applied.\n"}},"title":"ListActionApprovalRulesRequest"},"ListActionApprovalRulesResponse":{"type":"object","properties":{"actionApprovalRules":{"type":"array","items":{"$ref":"#/components/schemas/ActionApprovalRule"},"description":"List of action approval rules."},"totalCount":{"type":"integer","description":"Total number of action approval rules 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":["actionApprovalRules","totalCount"],"title":"ListActionApprovalRulesResponse"},"UpdateActionApprovalRuleRequest":{"type":"object","properties":{"requiredApprovals":{"type":"integer","minimum":1,"description":"Number of approvals required before the action can be executed."},"approvalWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours the request stays open for approval.\nIf the approvals aren't received before the end of the window, the request expires.\n"},"executionWindowHours":{"type":"integer","minimum":1,"maximum":168,"description":"Number of hours after approval the requester can execute the action.\nIf the requester doesn't execute before the end of the window, the request expires.\n"},"description":{"type":"string","description":"Description explaining the purpose of the rule."},"resourceSelector":{"$ref":"#/components/schemas/ActionApprovalRuleResourceSelector"},"approverIdpId":{"type":["string","null"],"format":"uuid","description":"Eon-assigned ID of the identity provider the approver's SAML group belongs to.\nUsed in combination with `approverProviderGroupId`.\n"},"approverProviderGroupId":{"type":["string","null"],"description":"Identity-provider-assigned ID of the approver group.\nUsed in combination with `approverIdpId`.\n"},"exemptApiCredentials":{"type":"boolean","description":"Whether API clients bypass the rule or are bound by it.\n\nWhen `true`, API clients bypass the rule and don't require approval to perform the action.\nWhen `false`, API clients are bound like any other user and must get the required approvals.\n"}},"description":"Fields to update on an action approval rule.","title":"UpdateActionApprovalRuleRequest"},"UpdateActionApprovalRuleResponse":{"type":"object","properties":{"actionApprovalRule":{"$ref":"#/components/schemas/ActionApprovalRule","description":"Updated action approval rule."}},"required":["actionApprovalRule"],"title":"UpdateActionApprovalRuleResponse"},"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.\n`MPA_OPERATION_TYPE_UNSPECIFIED` is supported only in responses.\n","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`MPA_REQUEST_STATUS_UNSPECIFIED` is supported only in responses.\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":"Date and time 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":"Date and time 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":"Date and time 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`MPA_SUBMIT_ACTION_UNSPECIFIED` is supported only in responses.\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."},"regions":{"type":"array","items":{"type":"string"},"description":"AWS regions Eon discovers in.\nOmit or leave empty to discover in all supported regions.\n"}},"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":"Cloud-provider-assigned ID of the Azure tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"Cloud-provider-assigned 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"},"regions":{"type":"array","items":{"type":"string"},"description":"Azure regions Eon discovers in.\nOmit or leave empty to discover in all supported regions.\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."},"regions":{"type":"array","items":{"type":"string"},"description":"GCP regions Eon discovers in.\nOmit or leave empty to discover in all supported regions.\n"}},"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."},"regions":{"type":"array","items":{"type":"string"},"description":"AWS regions Eon discovers in. If omitted, Eon discovers in all supported regions."}},"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."},"regions":{"type":"array","items":{"type":"string"},"description":"GCP regions Eon discovers in. If omitted, Eon discovers in all supported regions."}},"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":"Cloud-provider-assigned ID of the Azure tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"Cloud-provider-assigned 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":"Cloud-provider-assigned ID of the Azure management group the source account is scoped to."},"regions":{"type":"array","items":{"type":"string"},"description":"Azure regions Eon discovers in. If omitted, Eon discovers in all supported regions."}},"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."},"providerAccountAlias":{"type":"string","description":"Account alias inherited from the cloud provider.\nCan coexist with `providerAccountName`.\n\nApplicable for AWS only.\n"},"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":"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"},"regions":{"type":"array","items":{"type":"string"},"description":"AWS regions Eon discovers in.\nOmit to leave the current regions unchanged.\nTo discover in all supported regions, pass an empty list.\n"}},"description":"Updatable AWS account fields.\n","title":"UpdateAwsSourceAccountAttributes"},"UpdateAzureSourceAccountAttributes":{"type":"object","properties":{"regions":{"type":"array","items":{"type":"string"},"description":"Azure regions Eon discovers in.\nOmit to leave the current regions unchanged.\nTo discover in all supported regions, pass an empty list.\n"}},"description":"Updatable Azure subscription fields.\n","title":"UpdateAzureSourceAccountAttributes"},"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"},"regions":{"type":"array","items":{"type":"string"},"description":"GCP regions Eon discovers in.\nOmit to leave the current regions unchanged.\nTo discover in all supported regions, pass an empty list.\n"}},"description":"Updatable GCP account fields.\n","title":"UpdateGcpSourceAccountAttributes"},"UpdateSourceAccountAttributesInput":{"type":"object","properties":{"aws":{"$ref":"#/components/schemas/UpdateAwsSourceAccountAttributes"},"azure":{"$ref":"#/components/schemas/UpdateAzureSourceAccountAttributes"},"gcp":{"$ref":"#/components/schemas/UpdateGcpSourceAccountAttributes"}},"description":"Cloud-provider-specific fields to update.\nOne of: `aws`, `azure`, `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."},"regions":{"type":"array","items":{"type":"string"},"description":"AWS regions Eon discovers in.\nOmit or leave empty to discover in all supported regions.\n"}},"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"},"regions":{"type":"array","items":{"type":"string"},"description":"AWS regions Eon discovers in.\nIf omitted, Eon discovers in all supported regions.\n"}},"required":["id","roleArn","name","providerOrganizationalUnitId","providerManagementAccountId","status"],"title":"SourceAwsOrganizationalUnit"},"ConnectSourceAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit","description":"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":"Disconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"DisconnectSourceAwsOrganizationalUnitResponse"},"ReconnectSourceAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/SourceAwsOrganizationalUnit","description":"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":"Cloud-provider-assigned ID of the Azure 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":"Cloud-provider-assigned ID of the Azure tenant the subscription belongs to."},"subscriptionId":{"type":"string","format":"uuid","description":"Cloud-provider-assigned 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":"Cloud-provider-assigned 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."},"providerAccountAlias":{"type":"string","description":"Account alias inherited from the cloud provider.\nCan coexist with `providerAccountName`.\n\nApplicable for AWS only.\n"},"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."}},"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."}},"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."},"privateSubnetEnabled":{"type":"boolean","default":false,"description":"Whether to allow cross-region restores into subnets that have no internet access.\nWhen true, Eon reaches vault data from this VPC through an S3 gateway endpoint using S3 Multi-Region Access Points.\nTurn this on if any subnet in the VPC has no internet access.\n\nIn the Eon console, this setting is labeled **Allow cross-region restore via S3 gateway endpoint**.\n"},"restoreServerKmsKeyArn":{"type":"string","description":"ARN of the KMS key for the temporary restore server that Eon launches in this VPC.\nThe key encrypts the server's root volume and the SSM parameter that holds its container registry token.\nIt applies only if the server launches in one of the subnets listed in `subnetsPerAvailabilityZone`.\n\nIf this is the only VPC in the region, the key also encrypts the SSM parameter that holds the access token for restores from an Azure vault.\n\nThe key doesn't encrypt the restored resources.\n\nThe key must be in the same region as the VPC, and its key policy must allow the restore account to use it.\nIf you leave this out, the server uses the key chosen for the restored resource.\n"}},"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":"List of networks to configure, which Eon uses for its own management traffic in the restore account.\n\nWhen restoring instances with instant restore, this configuration is required.\nWithout this configuration, Eon uses the `default` network and subnet, which conflicts with any instance you restore into `default`.\nThis is because the recovery host has a second network interface that Eon owns, and each interface must use a unique subnet (Google Compute Engine requirement).\nTherefore, you must choose a subnet that's not the one you restore the instance into.\n"}},"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"},"S3Bucket":{"type":"object","properties":{"bucketName":{"type":"string","description":"Name of the bucket."},"regionName":{"type":"string","description":"Region where the bucket is located."}},"required":["bucketName","regionName"],"title":"S3Bucket"},"S3Buckets":{"type":"object","properties":{"buckets":{"type":"array","items":{"$ref":"#/components/schemas/S3Bucket"},"description":"List of buckets."}},"required":["buckets"],"title":"S3Buckets"},"EncryptionKey":{"type":"object","properties":{"id":{"type":"string","description":"Cloud-provider-assigned ID of the encryption key."},"arn":{"type":"string","description":"ARN of the encryption key."},"aliasName":{"type":"string","description":"Encryption key alias."}},"required":["id","arn","aliasName"],"title":"EncryptionKey"},"EncryptionKeys":{"type":"object","properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/EncryptionKey"},"description":"List of encryption keys."}},"required":["keys"],"title":"EncryptionKeys"},"RestoreSecurityGroupsSecurityGroupsItems":{"type":"object","properties":{"name":{"type":"string","description":"Name of the security group."},"id":{"type":"string","description":"Cloud-provider-assigned ID of the security group."},"vpc":{"type":"string","description":"Cloud-provider-assigned ID of the VPC the security group is in."}},"required":["name","id","vpc"],"title":"RestoreSecurityGroupsSecurityGroupsItems"},"RestoreSecurityGroups":{"type":"object","properties":{"region":{"type":"string","description":"Region where the security groups are located."},"securityGroups":{"type":"array","items":{"$ref":"#/components/schemas/RestoreSecurityGroupsSecurityGroupsItems"},"description":"List of security groups."}},"required":["region","securityGroups"],"title":"RestoreSecurityGroups"},"ListSubnetsResponseV2SubnetsItems":{"type":"object","properties":{"id":{"type":"string","description":"Cloud-provider-assigned ID of the subnet."},"vpc":{"type":"string","description":"Cloud-provider-assigned ID of the VPC the subnet is in."},"availabilityZone":{"type":"string","description":"Availability zone the subnet is in."},"name":{"type":"string","description":"Name of the subnet."},"cidrBlock":{"type":"string","description":"Primary IPv4 CIDR range of the subnet."}},"required":["id","vpc","availabilityZone"],"title":"ListSubnetsResponseV2SubnetsItems"},"ListSubnetsResponseV2":{"type":"object","properties":{"subnets":{"type":"array","items":{"$ref":"#/components/schemas/ListSubnetsResponseV2SubnetsItems"},"description":"List of subnets."}},"required":["subnets"],"title":"ListSubnetsResponseV2"},"ListAwsVpcsResponseVpcsItems":{"type":"object","properties":{"id":{"type":"string","description":"Cloud-provider-assigned ID of the VPC."},"name":{"type":"string","description":"Name of the VPC."}},"required":["id"],"title":"ListAwsVpcsResponseVpcsItems"},"ListAwsVpcsResponse":{"type":"object","properties":{"vpcs":{"type":"array","items":{"$ref":"#/components/schemas/ListAwsVpcsResponseVpcsItems"},"description":"List of VPCs."}},"required":["vpcs"],"title":"ListAwsVpcsResponse"},"ListInstanceTypesResponse":{"type":"object","properties":{"instanceTypes":{"type":"array","items":{"type":"string"},"description":"List of instance types."},"instantRestoreMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Map from post-promotion to instant-restore host instance type.\nOptions that are present in `instanceTypes` but absent from this list are not available for instant restore in the availability zone.\n"}},"title":"ListInstanceTypesResponse"},"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":"Connected AWS organizational unit."}},"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":"Disconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"DisconnectRestoreAwsOrganizationalUnitResponse"},"ReconnectRestoreAwsOrganizationalUnitResponse":{"type":"object","properties":{"organizationalUnit":{"$ref":"#/components/schemas/RestoreAwsOrganizationalUnit","description":"Reconnected AWS organizational unit."}},"required":["organizationalUnit"],"title":"ReconnectRestoreAwsOrganizationalUnitResponse"},"RestoreTemplateResourceType":{"type":"string","enum":["RESTORE_TEMPLATE_RESOURCE_TYPE_UNSPECIFIED","EC2_INSTANCE","S3_BUCKET"],"description":"Resource type the restore template applies to.\n`RESTORE_TEMPLATE_RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.\n","title":"RestoreTemplateResourceType"},"Ec2TemplateParamsAdditionalTagsItems":{"type":"object","properties":{"key":{"type":"string","description":"Tag key."},"value":{"type":"string","description":"Tag value."}},"title":"Ec2TemplateParamsAdditionalTagsItems"},"Ec2TemplateParams":{"type":"object","properties":{"subnetId":{"type":"string","description":"Cloud-provider-assigned ID of the subnet for the restored EC2 instance."},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Cloud-provider-assigned IDs of the security groups to attach to the restored EC2 instance."},"instanceType":{"type":"string","description":"EC2 instance type for the restored instance.\nRequired unless `inheritInstanceType` is set to `true`, in which case, must be empty.\n"},"inheritInstanceType":{"type":"boolean","default":false,"description":"Whether to restore each instance with the instance type recorded in its own snapshot, instead of `instanceType`.\nThe template's subnet must be in an availability zone that offers the specified type.\n"},"kmsKeyArn":{"type":"string","description":"ARN of the KMS key to use for encrypting the restored instance."},"keepOriginalTags":{"type":"boolean","default":true,"description":"Whether to keep the original tags from the source resource."},"additionalTags":{"type":"array","items":{"$ref":"#/components/schemas/Ec2TemplateParamsAdditionalTagsItems"},"description":"Additional tags to apply to the restored EC2 instance."},"nameTemplate":{"type":"string","description":"Template for naming the restored EC2 instance."},"startAfterRestore":{"type":"boolean","description":"Whether to start the restored EC2 instance after restoration."},"targetAccountId":{"type":"string","description":"Eon-assigned ID of the destination restore account."},"targetRegion":{"type":"string","description":"Target region for the restore."}},"required":["subnetId","keepOriginalTags","nameTemplate","startAfterRestore","targetAccountId","targetRegion"],"title":"Ec2TemplateParams"},"S3TemplateParams":{"type":"object","properties":{"targetBucketId":{"type":"string","description":"Name of the target S3 bucket for the restore."},"prefixTemplate":{"type":"string","description":"Template for the prefix to use when restoring objects."},"targetAccountId":{"type":"string","description":"Eon-assigned ID of the target restore account."},"targetRegion":{"type":"string","description":"Target region for the restore."},"kmsKeyArn":{"type":"string","description":"ARN of a customer-managed KMS key in the target account and region. It encrypts the restore's temporary\nsecrets in the restore account: the vault access secret and the container-registry token. Restored objects\nuse the target bucket's default encryption. AWS-managed keys aren't accepted.\n"}},"required":["targetBucketId","prefixTemplate","targetAccountId","targetRegion"],"title":"S3TemplateParams"},"CreateRestoreTemplateRequest":{"type":"object","properties":{"name":{"type":"string","description":"Restore template display name."},"description":{"type":"string","description":"Description of the purpose of the restore template."},"resourceType":{"$ref":"#/components/schemas/RestoreTemplateResourceType"},"ec2Params":{"$ref":"#/components/schemas/Ec2TemplateParams"},"s3Params":{"$ref":"#/components/schemas/S3TemplateParams"}},"required":["name","resourceType"],"title":"CreateRestoreTemplateRequest"},"RestoreTemplate":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the restore template."},"name":{"type":"string","description":"Restore template display name."},"description":{"type":"string","description":"Description of the restore template's purpose."},"resourceType":{"$ref":"#/components/schemas/RestoreTemplateResourceType"},"ec2Params":{"$ref":"#/components/schemas/Ec2TemplateParams"},"s3Params":{"$ref":"#/components/schemas/S3TemplateParams"},"attachedResourceCount":{"type":"integer","description":"Number of resources currently using this restore template."},"createdAt":{"type":"string","format":"date-time","description":"Date and time the restore template was created."},"updatedAt":{"type":"string","format":"date-time","description":"Date and time the restore template was last updated."}},"required":["id","name","resourceType"],"title":"RestoreTemplate"},"CreateRestoreTemplateResponse":{"type":"object","properties":{"restoreTemplate":{"$ref":"#/components/schemas/RestoreTemplate","description":"Created restore template."}},"required":["restoreTemplate"],"title":"CreateRestoreTemplateResponse"},"BulkAttachRestoreTemplateRequest":{"type":"object","properties":{"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of Eon-assigned resource IDs to attach the restore template to."}},"required":["resourceIds"],"title":"BulkAttachRestoreTemplateRequest"},"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","CLASSIFICATION_FAILED","ACCESS_LOST"],"description":"Eon backup status.\nFor an explanation of statuses, see [Resource Statuses](/data-protection/backup-and-protection/backup-management/resource-statuses).\n`BACKUP_POSTURE_STATUS_UNSPECIFIED` is supported only in responses.\n\nReplaced by `configurationStatus` and `complianceStatus`.\nSupported until April 30, 2027.\n","title":"BackupStatus","deprecated":true},"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"},"ComplianceStatus":{"type":"string","enum":["COMPLIANT","VIOLATIONS","ALL_MUTED"],"description":"Whether the resource meets the backup posture controls applied to it.\nEvaluated independent of `configurationStatus`.\n\n- `COMPLIANT`: No violations.\n  This is the default status.\n  Resources with no controls applied are considered compliant.\n- `VIOLATIONS`: At least one open violation.\n  For the count, see `controlViolationCounts`.\n- `ALL_MUTED`: The resource has violations and every one of them is muted.\n","title":"ComplianceStatus"},"ConfigurationStatus":{"type":"string","enum":["INITIAL_CLASSIFICATION","ACCESS_LOST","CLASSIFICATION_FAILED","UNASSIGNED","ASSIGNED","TERMINATED","DISCONNECTED","EXCLUDED_FROM_BACKUP","UNSUPPORTED"],"description":"Whether backup is configured for the resource, and if not, the reason.\nDetermines the overall resource status in combination with `complianceStatus`.\n\nResources in scope are eligible for backup protection, and resources out of scope are ineligible.\n\n**In scope**:\n\n- `INITIAL_CLASSIFICATION`: Recently discovered. Final status is pending.\n- `ASSIGNED`:  Covered by a backup policy.\n- `UNASSIGNED`: Classified and eligible, but not covered by any backup policies.\n- `ACCESS_LOST`: Unreachable because permissions were removed or changed.\n- `CLASSIFICATION_FAILED`: Multiple unsuccessful consecutive classification attempts.\n\n**Out of scope**:\n\n- `TERMINATED`: Deleted from the source account.\n- `DISCONNECTED`: Unavailable to Eon by user instruction. Typically happens by deactivating the source account or through a discovery exclusion rule.\n- `EXCLUDED_FROM_BACKUP`: A user explicitly excluded the resource from backup protection.\n- `UNSUPPORTED`: Can't be backed up by Eon.\n","title":"ConfigurationStatus"},"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":"Cloud-provider-assigned resource ID of the volume."},"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`UNSPECIFIED` is supported only in responses.\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","deprecated":true},"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."},"complianceStatus":{"$ref":"#/components/schemas/ComplianceStatus"},"configurationStatus":{"$ref":"#/components/schemas/ConfigurationStatus"},"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":["configurationStatus","resourceName","latestSnapshotTime","oldestSnapshotTime","dateDiscovered","createdTime","resourceGroupName","clusterName","globalClusterIdentifier"],"description":"Field to sort by.\n\n**Notes**:\n\n- Sorting `configurationStatus` in ascending order puts resources Eon is expected to back up before those out of scope.\n  The order starts with `UNASSIGNED` and ends with `TERMINATED`.\n\n- Sorting `alerts` in descending order puts the resources that need attention first.\n  Sorted first by alert severity, then by number of alerts.\n","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`."},"startsWith":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list is a prefix of `resourceName`."},"notStartsWith":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list is a prefix of `resourceName`."},"endsWith":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list is a suffix of `resourceName`."},"notEndsWith":{"type":"array","items":{"type":"string"},"description":"Matches if no string in this list is a suffix 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`."}},"description":"Filters for resource backup status.\n\nReplaced by `configurationStatus`.\nSupported until April 30, 2027.\n","title":"BackupStatusFilters","deprecated":true},"ConfigurationStatusFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/ConfigurationStatus"},"description":"Matches if any value in this list equals `configurationStatus`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/ConfigurationStatus"},"description":"Matches if none of the values in this list equal `configurationStatus`.\nA resource whose status hasn't been calculated yet has no configuration status, and matches every `notIn` list.\n"}},"title":"ConfigurationStatusFilters"},"TagKeysFilters":{"type":"object","properties":{"containsAllOf":{"type":"array","items":{"type":"string"},"description":"Matches if all keys in this list are in the `tags` keys list."},"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if any key in this list is in the `tags` keys list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the 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 all `{key}={value}` pairs in this list are in the `tags` list."},"containsAnyOf":{"type":"array","items":{"type":"string"},"description":"Matches if any `{key}={value}` pair in this list is in the `tags` list."},"containsNoneOf":{"type":"array","items":{"type":"string"},"description":"Matches if none of the `{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","deprecated":true},"configurationStatus":{"$ref":"#/components/schemas/ConfigurationStatusFilters","description":"Filters for whether a backup is configured for the resource."},"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"},"ObjectStoreScanMethodSetting":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether this mode is currently enabled."},"systemControlled":{"type":"boolean","description":"Whether Eon automatically manages this mode.\n"}},"required":["enabled","systemControlled"],"title":"ObjectStoreScanMethodSetting"},"ObjectStoreScanMethod":{"type":"object","properties":{"cdcBackup":{"$ref":"#/components/schemas/ObjectStoreScanMethodSetting","description":"Change detection mode, which determines how Eon detects changes between backups.\n\nWhen enabled, Eon uses bucket event notifications to detect changes, which allows more frequent backups.\nOtherwise, Eon detects changes only through periodic full bucket scans.\n"},"inventoryBackup":{"$ref":"#/components/schemas/ObjectStoreScanMethodSetting","description":"Scan mode, which determines how Eon retrieves the list of a bucket's objects and their metadata.\n\nWhen enabled, Eon uses an inventory report of the bucket's objects, a faster and more cost-effective way to list objects in buckets with a very large number of objects.\nOtherwise, Eon lists the objects directly, which suits buckets with fewer objects.\n"}},"required":["cdcBackup","inventoryBackup"],"description":"Scan mode and change detection mode settings.","title":"ObjectStoreScanMethod"},"GetObjectStoreScanMethodResponse":{"type":"object","properties":{"objectStoreScanMethod":{"$ref":"#/components/schemas/ObjectStoreScanMethod","description":"Scan mode and change detection mode for the Amazon S3 bucket or Google Cloud Storage bucket."}},"required":["objectStoreScanMethod"],"title":"GetObjectStoreScanMethodResponse"},"UpdateObjectStoreScanMethodSetting":{"type":"object","properties":{"enabled":{"type":["boolean","null"],"description":"Whether to enable this mode. Required when `systemControlled` is `false`. Ignored when `systemControlled` is `true`."},"systemControlled":{"type":"boolean","description":"Whether Eon manages this mode.\nWhen `true`, Eon automatically determines whether the mode is enabled.\n"}},"required":["systemControlled"],"title":"UpdateObjectStoreScanMethodSetting"},"UpdateObjectStoreScanMethodRequest":{"type":"object","properties":{"cdcBackup":{"$ref":"#/components/schemas/UpdateObjectStoreScanMethodSetting","description":"Change detection mode, which determines how Eon detects changes between backups.\n\nWhen enabled, Eon uses bucket event notifications to detect changes, which allows more frequent backups.\nOtherwise, Eon detects changes only through periodic full bucket scans.\n"},"inventoryBackup":{"$ref":"#/components/schemas/UpdateObjectStoreScanMethodSetting","description":"Scan mode, which determines how Eon retrieves the list of a bucket's objects and their metadata.\n\nWhen enabled, Eon uses an inventory report of the bucket's objects, a faster and more cost-effective way to list objects in buckets with a very large number of objects.\nOtherwise, Eon lists the objects directly, which suits buckets with fewer objects.\n"}},"description":"Scan mode and change detection mode settings to update for an Amazon S3 bucket or Google Cloud Storage bucket. Eon ignores `enabled` when `systemControlled` is `true`. The `enabled` field is required when `systemControlled` is `false`.","title":"UpdateObjectStoreScanMethodRequest"},"UpdateObjectStoreScanMethodResponse":{"type":"object","properties":{"objectStoreScanMethod":{"$ref":"#/components/schemas/ObjectStoreScanMethod","description":"Scan mode and change detection mode settings for the resource."}},"required":["objectStoreScanMethod"],"description":"Current scan mode and change detection mode settings after the update.","title":"UpdateObjectStoreScanMethodResponse"},"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"},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for vaults.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"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"},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for vaults.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"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"},"FreeTextFilters":{"type":"object","properties":{"contains":{"type":"array","items":{"type":"string"}}},"title":"FreeTextFilters"},"VaultRegionFilters":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any value in this list equals `region`."},"notIn":{"type":"array","items":{"type":"string"},"description":"Matches if none of the values in this list equal `region`."}},"title":"VaultRegionFilters"},"VaultStatus":{"type":"string","enum":["UNSPECIFIED","CREATING","CREATION_FAILED","ACTIVE","DELETING","DELETED","CLEANUP_FAILED","PENDING_DELETION"],"description":"Vault lifecycle status.\n`UNSPECIFIED` is supported only in responses.\n","title":"VaultStatus"},"VaultStatusFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/VaultStatus"},"description":"Matches if any value in this list equals the vault status."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/VaultStatus"},"description":"Matches if none of the values in this list equal the vault status."}},"title":"VaultStatusFilters"},"VaultType":{"type":"string","enum":["EON_MANAGED","SELF_MANAGED"],"description":"Whether the vault lives in an Eon-managed vault account or in the customer's own.","title":"VaultType"},"VaultTypeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/VaultType"},"description":"Matches if any value in this list equals the vault type."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/VaultType"},"description":"Matches if none of the values in this list equal the vault type."}},"title":"VaultTypeFilters"},"VaultsFilterConditions":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/FreeTextFilters","description":"Filters for the vault name."},"cloudProvider":{"$ref":"#/components/schemas/CloudProviderFilters","description":"Filters for the cloud the vault stores backups in."},"region":{"$ref":"#/components/schemas/VaultRegionFilters","description":"Filters for the vault region."},"status":{"$ref":"#/components/schemas/VaultStatusFilters","description":"Filters for the vault lifecycle status."},"vaultType":{"$ref":"#/components/schemas/VaultTypeFilters","description":"Filters for whether the vault is Eon-managed or self-managed."}},"description":"Filter conditions.\nIf omitted, no filtering is applied.\n","title":"VaultsFilterConditions"},"ListVaultsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/VaultsFilterConditions"}},"title":"ListVaultsRequest"},"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."},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for vaults.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"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"},"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"},"NumericOperators":{"type":"string","enum":["GREATER_THAN","GREATER_THAN_OR_EQUALS","LESS_THAN","LESS_THAN_OR_EQUALS","EQUALS","NOT_EQUALS","UNSPECIFIED"],"description":"Compares the value against a numeric threshold.\n`UNSPECIFIED` is supported only in responses.\n","title":"NumericOperators"},"SourceStorageSizeCondition":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/NumericOperators"},"sizeBytes":{"type":"integer","format":"int64","minimum":0}},"required":["operator","sizeBytes"],"description":"Evaluates the size of the resource's source data, in bytes, against a threshold.\n\nA resource's size changes over time, so this condition is re-evaluated as the resource grows and shrinks.\nA resource that crosses the threshold is attached to or detached from the policy accordingly.\n","title":"SourceStorageSizeCondition"},"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"},"sourceStorageSize":{"$ref":"#/components/schemas/SourceStorageSizeCondition"}},"description":"Conditional expression to evaluate to determine which resources are 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":"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":"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":"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":"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"},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for backup policies.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"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"},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for backup policies.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"required":["id","name","enabled","resourceSelector","backupPlan"],"title":"BackupPolicy"},"CreateBackupPolicyResponse":{"type":"object","properties":{"backupPolicy":{"$ref":"#/components/schemas/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"},"labels":{"type":"array","items":{"type":"string"},"description":"List of labels for filtering and searching for backup policies.\nDoesn't affect backup behavior, access control, or the tags Eon sets on your cloud resources.\n"}},"required":["name","resourceSelector","backupPlan"],"title":"UpdateBackupPolicyRequest"},"UpdateBackupPolicyResponse":{"type":"object","properties":{"backupPolicy":{"$ref":"#/components/schemas/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"},"encryptionType":{"$ref":"#/components/schemas/EncryptionTypeCondition"},"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 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"},"SnapshotHoldReason":{"type":"string","enum":["USER_HOLD","SECURITY_SCAN_BASELINE","REPLAY_ANCHOR","LAST_SNAPSHOT_GRACE","LINEAGE_ANCHOR_GRACE","RECENT_RESTORE"],"description":"Reason a snapshot past its retention hasn't been deleted.\nAbsent when the snapshot isn't on hold.\n","title":"SnapshotHoldReason"},"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":"Instance profile of the resource."},"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 expires and is marked for deletion.\nCalculated based on its point in time and retention.\n\nA snapshot can outlive this date while on hold, which defers its deletion.\nIn these cases, `effectiveExpirationTime` reflects the date the snapshot is expected to be removed after the hold ends.\n"},"effectiveExpirationTime":{"type":"string","format":"date-time","description":"Date and time the snapshot is expected to be deleted, accounting for any hold that defers it past its original expiration.\nAbsent when `holdReason` is set but the hold has no end date of its own, meaning no deletion date is known until the condition behind the hold changes.\n"},"holdReason":{"$ref":"#/components/schemas/SnapshotHoldReason"},"holdReasonMessage":{"type":"string","description":"Explanation of `holdReason`, including how to end the hold, if possible.\nAbsent when the snapshot is not on hold.\n"},"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":"Total number of Eon snapshots that matched the filter options."}},"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"},"FindingExclusionScope":{"type":"string","enum":["RESOURCE","ACCOUNT"],"description":"Whether the exclusion applies to a single resource or to all resources in the Eon account.\n\nIf set to `RESOURCE`, a resource ID must be set in `providerResourceId`.\n","title":"FindingExclusionScope"},"FindingObjectType":{"type":"string","enum":["PATH","TABLE","DATABASE","KMS_KEY"],"description":"Whether the finding is set to a file path, a database table, a whole database, or objects encrypted with a trusted KMS key.\nUsed in combination with `value`.\n","title":"FindingObjectType"},"FindingExclusionDetectorType":{"type":"string","enum":["RANSOMWARE_BEHAVIOR","DATA_ANOMALY","MALWARE"],"description":"Detector type the exclusion applies to.\nIf set to `MALWARE`, only paths can be excluded.\n","title":"FindingExclusionDetectorType"},"CreateFindingExclusionRequest":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/FindingExclusionScope"},"providerResourceId":{"type":"string","minLength":1,"description":"Cloud-provider-assigned ID of the resource to apply the exclusion to.\n\nRequired for `RESOURCE` scope.\nMust be omitted for `ACCOUNT` scope.\n"},"value":{"type":"string","minLength":1,"description":"Matching value to exclude.\nThe value set in this field depends on the specified `type`.\n\n- `PATH`: Matches files whose path starts with the specified value, case-sensitive.\n  For example, `/data/tmp` matches `/data/tmp2/report.csv`.\n\n    Linux paths are case-sensitive.\n\n    Windows paths are case-insensitive, normalize for the file separator, and start with the drive letter.\n    For example, `C:\\Users\\App\\Cache` matches `c:/users/app/cache`.\n\n- `TABLE`: Exact table name.\n\n- `DATABASE`: Exact database name.\n\n- `KMS_KEY`: Either a KMS key ARN, or an AWS account ID to trust all keys in the account.\n  Available for the ransomware detector only.\n"},"type":{"$ref":"#/components/schemas/FindingObjectType"},"detector":{"$ref":"#/components/schemas/FindingExclusionDetectorType"}},"required":["scope","value","type","detector"],"title":"CreateFindingExclusionRequest"},"FindingExclusion":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"ID of the finding exclusion."},"scope":{"$ref":"#/components/schemas/FindingExclusionScope"},"providerResourceId":{"type":"string","description":"Cloud-provider-assigned ID of the resource the exclusion applies to.\n\nSet when scope is `RESOURCE`.\n"},"value":{"type":"string","description":"Matching value to exclude.\nThe value set in this field depends on the specified `type`.\n\n- `PATH`: Matches files whose path starts with the specified value, case-sensitive.\n  For example, `/data/tmp` matches `/data/tmp2/report.csv`.\n\n    Linux paths are case-sensitive.\n\n    Windows paths are case-insensitive, normalize for the file separator, and start with the drive letter.\n    For example, `C:\\Users\\App\\Cache` matches `c:/users/app/cache`.\n\n- `TABLE`: Exact table name.\n\n- `DATABASE`: Exact database name.\n\n- `KMS_KEY`: Either a KMS key ARN, or an AWS account ID to trust all keys in the account.\n  Available for the ransomware detector only.\n"},"type":{"$ref":"#/components/schemas/FindingObjectType"},"detector":{"$ref":"#/components/schemas/FindingExclusionDetectorType"},"updatedAt":{"type":"string","format":"date-time","description":"Date and time the exclusion was updated."}},"required":["id","scope","value","type","detector","updatedAt"],"description":"Exclusion that stops a detector from reporting findings for matching files, tables, or databases.\nCan be scoped either to a single resource or to all resources in your inventory.\n","title":"FindingExclusion"},"CreateFindingExclusionResponse":{"type":"object","properties":{"findingExclusion":{"$ref":"#/components/schemas/FindingExclusion"}},"required":["findingExclusion"],"title":"CreateFindingExclusionResponse"},"GetFindingExclusionResponse":{"type":"object","properties":{"findingExclusion":{"$ref":"#/components/schemas/FindingExclusion"}},"required":["findingExclusion"],"title":"GetFindingExclusionResponse"},"FindingExclusionScopeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/FindingExclusionScope"},"description":"Matches if any value in this list equals `scope`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/FindingExclusionScope"},"description":"Matches if none of the values in this list equal `scope`."}},"title":"FindingExclusionScopeFilters"},"FindingExclusionResourceFilter":{"type":"object","properties":{"in":{"type":"array","items":{"type":"string"},"description":"Matches if any string in this list equals `providerResourceId`.\nAccount-wide exclusions never match.\n"}},"title":"FindingExclusionResourceFilter"},"FindingExclusionTypeFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/FindingObjectType"},"description":"Matches if any value in this list equals `type`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/FindingObjectType"},"description":"Matches if none of the values in this list equal `type`."}},"title":"FindingExclusionTypeFilters"},"FindingExclusionDetectorFilters":{"type":"object","properties":{"in":{"type":"array","items":{"$ref":"#/components/schemas/FindingExclusionDetectorType"},"description":"Matches if any value in this list equals `detector`."},"notIn":{"type":"array","items":{"$ref":"#/components/schemas/FindingExclusionDetectorType"},"description":"Matches if none of the values in this list equal `detector`."}},"title":"FindingExclusionDetectorFilters"},"FindingExclusionValueFilters":{"type":"object","properties":{"contains":{"type":"array","items":{"type":"string"},"description":"Matches if every string in this list is a substring of `value`."}},"title":"FindingExclusionValueFilters"},"FindingExclusionFilterConditions":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/FindingExclusionScopeFilters","description":"Filters for the exclusion scope."},"resource":{"$ref":"#/components/schemas/FindingExclusionResourceFilter","description":"Filters for the cloud-provider-assigned resource ID."},"type":{"$ref":"#/components/schemas/FindingExclusionTypeFilters","description":"Filters for the exclusion type."},"detector":{"$ref":"#/components/schemas/FindingExclusionDetectorFilters","description":"Filters for the detector."},"value":{"$ref":"#/components/schemas/FindingExclusionValueFilters","description":"Filters for the exclusion value."}},"title":"FindingExclusionFilterConditions"},"ListFindingExclusionsRequest":{"type":"object","properties":{"filters":{"$ref":"#/components/schemas/FindingExclusionFilterConditions","description":"Filter conditions.\nIf omitted, no filtering is applied.\n"}},"title":"ListFindingExclusionsRequest"},"ListFindingExclusionsResponse":{"type":"object","properties":{"findingExclusions":{"type":"array","items":{"$ref":"#/components/schemas/FindingExclusion"},"description":"List of finding exclusions."},"totalCount":{"type":"integer","description":"Total number of finding exclusions 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":["findingExclusions","totalCount"],"title":"ListFindingExclusionsResponse"},"UpdateFindingExclusionRequest":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/FindingExclusionScope"},"providerResourceId":{"type":"string","minLength":1,"description":"Cloud provider ID of the resource to apply the exclusion to, such as an EC2 instance ID or an Azure resource ID.\nRequired when `scope` is `RESOURCE`, and must be omitted when it's `ACCOUNT`.\n"},"value":{"type":"string","minLength":1,"description":"Matching value to exclude.\nThe value set in this field depends on the specified `type`.\n\n- `PATH`: Matches files whose path starts with the specified value, case-sensitive.\n  For example, `/data/tmp` matches `/data/tmp2/report.csv`.\n\n    Linux paths are case-sensitive.\n\n    Windows paths are case-insensitive, normalize for the file separator, and start with the drive letter.\n    For example, `C:\\Users\\App\\Cache` matches `c:/users/app/cache`.\n\n- `TABLE`: Exact table name.\n\n- `DATABASE`: Exact database name.\n\n- `KMS_KEY`: Either a KMS key ARN, or an AWS account ID to trust all keys in the account.\n  Available for the ransomware detector only.\n"},"type":{"$ref":"#/components/schemas/FindingObjectType"},"detector":{"$ref":"#/components/schemas/FindingExclusionDetectorType","description":"Detector whose findings to suppress.\n`MALWARE` can only exclude paths: databases aren't scanned for malware.\n"}},"required":["scope","value","type","detector"],"title":"UpdateFindingExclusionRequest"},"UpdateFindingExclusionResponse":{"type":"object","properties":{"findingExclusion":{"$ref":"#/components/schemas/FindingExclusion","description":"Updated finding exclusion."}},"required":["findingExclusion"],"title":"UpdateFindingExclusionResponse"},"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."},"actionApprovalRequest":{"$ref":"#/components/schemas/MPARequest"}},"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"},"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 to encrypt the restored volume with.\nIf omitted, the volume is restored unencrypted, unless EBS encryption by default is on.\nIn that case, it's encrypted with the account's default key.\n"},"volumeSettings":{"$ref":"#/components/schemas/VolumeSettings","description":"Settings to use for the restored volume."}},"required":["providerVolumeId","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"},"NetworkInterfaceConfigMode":{"type":"string","enum":["existing","create"],"description":"Whether to use an existing NIC or create a new one.","title":"NetworkInterfaceConfigMode"},"VNetConfigMode":{"type":"string","enum":["existing","create"],"description":"Whether to use an existing virtual network or create a new one.","title":"VNetConfigMode"},"VNetConfig":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/VNetConfigMode","description":"Whether to use an existing virtual network or create a new one."},"name":{"type":"string","description":"Virtual network name.\nRequired when `mode` is set to use an existing virtual network.\n\nOptional when `mode` is set to create a new virtual network.\nNew virtual networks default to `eon-default-vnet-<region>`.\n\nThe virtual network must be in the same subscription and region as the VM.\n"},"resourceGroupName":{"type":"string","description":"Resource group that contains the new or existing virtual network.\n\nDefaults to the restored VM's resource group.\n"},"addressSpace":{"type":"string","description":"Address space in CIDR notation.\nUsed only when `mode` is set to create a new virtual network.\n\nDefaults to `10.0.0.0/16`.\n"}},"required":["mode"],"description":"Virtual network configuration.","title":"VNetConfig"},"SubnetConfigMode":{"type":"string","enum":["existing","create"],"description":"Whether to use an existing subnet or create a new one.","title":"SubnetConfigMode"},"SubnetConfig":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/SubnetConfigMode","description":"Whether to use an existing subnet or create a new one."},"name":{"type":"string","description":"Subnet name.\nRequired when `mode` is set to use an existing subnet.\n\nOptional when `mode` is set to create a new subnet.\nNew subnets default to `eon-default-subnet-<region>`.\n"},"addressPrefix":{"type":"string","description":"Address prefix in CIDR notation.\nUsed only when `mode` is set to create a new subnet.\n\nDefaults to `10.0.0.0/24`.\n"}},"required":["mode"],"description":"Subnet configuration.","title":"SubnetConfig"},"NetworkInterfaceConfig":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/NetworkInterfaceConfigMode","description":"Whether to use an existing NIC or create a new one."},"nicId":{"type":"string","description":"Full Azure resource ID of an existing NIC.\nRequired when `mode` is set to use an existing NIC.\n\nFormat: `/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Network/networkInterfaces/{name}`\n"},"nicName":{"type":"string","description":"Name for the new NIC.\nApplicable when `mode` is set to create a new NIC.\n\nDefaults to `<vmName>-nic`.\n"},"vnet":{"$ref":"#/components/schemas/VNetConfig"},"subnet":{"$ref":"#/components/schemas/SubnetConfig"}},"required":["mode"],"description":"Network interface configuration.\n","title":"NetworkInterfaceConfig"},"RestoreAzureInstanceDiskInput":{"type":"object","properties":{"providerDiskId":{"type":"string","description":"Cloud-provider-assigned ID of the disk to restore."},"settings":{"$ref":"#/components/schemas/AzureDiskSettings"},"diskEncryptionSetId":{"type":"string","description":"ARM resource ID of the disk encryption set whose customer-managed key encrypts the restored disk.\nThe disk encryption set must be in the restore account's subscription and the destination region.\nIf omitted, the restored disk is encrypted with a platform-managed key.\n"}},"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.\nIgnored if `networkInterfaceConfig` is provided.\n\nReplaced with `networkInterfaceConfig`.\n","deprecated":true},"networkInterfaceConfig":{"$ref":"#/components/schemas/NetworkInterfaceConfig"},"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"},"diskEncryptionSetId":{"type":"string","description":"ARM resource ID of the disk encryption set whose customer-managed key encrypts the restored disk.\nThe disk encryption set must be in the restore account's subscription and the destination region.\nIf omitted, the restored disk is encrypted with a platform-managed key.\n"}},"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.\nApplies to `pd-extreme`, `hyperdisk-balanced`, `hyperdisk-balanced-high-availability` and `hyperdisk-extreme` disks.\nEon passes the value to GCP unchanged.\nIf it's outside GCP's limits for the disk type and size, the restore fails.\n\nFor `hyperdisk-balanced` and `hyperdisk-balanced-high-availability` disks, set both IOPS and throughput, or neither.\nIf omitted, the disk gets GCP's default IOPS for its type and size.\n"},"throughput":{"type":"integer","format":"int64","description":"Disk throughput.\nApplies to `hyperdisk-balanced`, `hyperdisk-balanced-high-availability`, `hyperdisk-throughput` and `hyperdisk-ml` disks.\nEon passes the value to GCP unchanged.\nIf it's outside GCP's limits for the disk type and size, the restore fails.\n\nFor `hyperdisk-balanced` and `hyperdisk-balanced-high-availability` disks, set both IOPS and throughput, or neither.\nIf omitted, the disk gets GCP's default throughput for its type and size.\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\nA standard restore must include every disk of the backed-up instance.\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 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 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","OBJECTS"],"default":"BYTE_MONTHS","description":"Whether usage is returned in byte-months, raw bytes, operations, objects, 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"},"WebhookV1OnboardingPayloadType":{"type":"string","enum":["onboarding"],"description":"Always `onboarding`.\nAlso sent in the `X-Eon-Notification-Type` header.\n","title":"WebhookV1OnboardingPayloadType"},"WebhookV1TargetProjectId":{"type":"string","description":"ID of the project the notification policy is in.","title":"WebhookV1TargetProjectId"},"WebhookV1MessageTimestamp":{"type":"string","format":"date-time","description":"Time the message was sent, in RFC 3339 format with second precision.\nAlso sent in the `X-Eon-Timestamp` header.\n","title":"WebhookV1MessageTimestamp"},"WebhookV1OnboardingPayload":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/WebhookV1OnboardingPayloadType","description":"Always `onboarding`.\nAlso sent in the `X-Eon-Notification-Type` header.\n"},"message":{"type":"string","description":"Human-readable confirmation message."},"projectId":{"$ref":"#/components/schemas/WebhookV1TargetProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1MessageTimestamp"}},"required":["type","message","projectId","timestamp"],"description":"Notification of a newly configured webhook, sent once to confirm that Eon can deliver to it.","title":"WebhookV1OnboardingPayload"},"WebhookV1NotificationId":{"type":"string","description":"Notification ID. Also sent in the `X-Eon-Notification-Id` header.","title":"WebhookV1NotificationId"},"WebhookV1ProjectId":{"type":"string","description":"ID of the project the notification policy is in.","title":"WebhookV1ProjectId"},"WebhookV1Timestamp":{"type":"string","format":"date-time","description":"Time the notification was created, in RFC 3339 format with second precision.\nAlso sent in the `X-Eon-Timestamp` header.\n","title":"WebhookV1Timestamp"},"WebhookV1ProtobufTimestamp":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64","description":"Seconds since the Unix epoch (1970-01-01T00:00:00Z).\nOmitted when `0`.\n"},"nanos":{"type":"integer","minimum":0,"maximum":999999999,"description":"Nanosecond fraction of the second.\nOmitted when `0`.\n"}},"description":"Time encoded as an object rather than a string.\n","title":"WebhookV1ProtobufTimestamp"},"WebhookV1ProtobufDuration":{"type":"object","properties":{"seconds":{"type":"integer","format":"int64","description":"Whole seconds.\nOmitted when `0`.\n"},"nanos":{"type":"integer","description":"Nanosecond fraction of the second.\nOmitted when `0`.\n"}},"description":"Length of time, encoded as an object rather than a string.\n","title":"WebhookV1ProtobufDuration"},"WebhookV1BackupJobDetails":{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource."},"resourceId":{"type":"string","description":"Cloud-provider-assigned ID of the resource."},"policyName":{"type":"string","description":"Name of the backup policy that triggered the job."},"sourceAccountName":{"type":"string","description":"Display name of the source account."},"duration":{"$ref":"#/components/schemas/WebhookV1ProtobufDuration"},"resourceType":{"type":"string","description":"Resource type."},"snapshotSizeBytes":{"type":"integer","format":"int64","minimum":0,"description":"Bytes the job's snapshot stored. Present only for finished non-native backups."},"sourceSizeBytes":{"type":"integer","format":"int64","minimum":0,"description":"Logical size of the source at backup time. Present only for finished non-native backups with a known source size."}},"description":"Details of the resource the backup job ran for.","title":"WebhookV1BackupJobDetails"},"WebhookV1BackupJobFailedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"details":{"$ref":"#/components/schemas/WebhookV1BackupJobDetails"}},"description":"Details of the `BACKUP_JOB_FAILED` notification.","title":"WebhookV1BackupJobFailedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupJobFailedArguments":{"type":"object","properties":{"backupJobFailed":{"$ref":"#/components/schemas/WebhookV1BackupJobFailedArguments"}},"required":["backupJobFailed"],"description":"Details of the notification.\nAlways `backupJobFailed`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupJobFailedArguments"},"WebhookV1BackupJobSkippedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."},"details":{"$ref":"#/components/schemas/WebhookV1BackupJobDetails"}},"description":"Details of the `BACKUP_JOB_SKIPPED` notification.","title":"WebhookV1BackupJobSkippedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupJobSkippedArguments":{"type":"object","properties":{"backupJobSkipped":{"$ref":"#/components/schemas/WebhookV1BackupJobSkippedArguments"}},"required":["backupJobSkipped"],"description":"Details of the notification.\nAlways `backupJobSkipped`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupJobSkippedArguments"},"WebhookV1BackupJobRejectedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."},"details":{"$ref":"#/components/schemas/WebhookV1BackupJobDetails"}},"description":"Details of the `BACKUP_JOB_REJECTED` notification.","title":"WebhookV1BackupJobRejectedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupJobRejectedArguments":{"type":"object","properties":{"backupJobRejected":{"$ref":"#/components/schemas/WebhookV1BackupJobRejectedArguments"}},"required":["backupJobRejected"],"description":"Details of the notification.\nAlways `backupJobRejected`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupJobRejectedArguments"},"WebhookV1BackupJobSucceededArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"details":{"$ref":"#/components/schemas/WebhookV1BackupJobDetails"}},"description":"Details of the `BACKUP_JOB_SUCCEEDED` notification.","title":"WebhookV1BackupJobSucceededArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupJobSucceededArguments":{"type":"object","properties":{"backupJobSucceeded":{"$ref":"#/components/schemas/WebhookV1BackupJobSucceededArguments"}},"required":["backupJobSucceeded"],"description":"Details of the notification.\nAlways `backupJobSucceeded`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupJobSucceededArguments"},"WebhookV1BackupJobPartialArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."},"details":{"$ref":"#/components/schemas/WebhookV1BackupJobDetails"}},"description":"Details of the `BACKUP_JOB_PARTIAL` notification.","title":"WebhookV1BackupJobPartialArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupJobPartialArguments":{"type":"object","properties":{"backupJobPartial":{"$ref":"#/components/schemas/WebhookV1BackupJobPartialArguments"}},"required":["backupJobPartial"],"description":"Details of the notification.\nAlways `backupJobPartial`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupJobPartialArguments"},"WebhookV1RestoreJobSucceededArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"Details of the `RESTORE_JOB_SUCCEEDED` notification.","title":"WebhookV1RestoreJobSucceededArguments"},"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobSucceededArguments":{"type":"object","properties":{"restoreJobSucceeded":{"$ref":"#/components/schemas/WebhookV1RestoreJobSucceededArguments"}},"required":["restoreJobSucceeded"],"description":"Details of the notification.\nAlways `restoreJobSucceeded`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobSucceededArguments"},"WebhookV1RestoreJobFailedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"Details of the `RESTORE_JOB_FAILED` notification.","title":"WebhookV1RestoreJobFailedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobFailedArguments":{"type":"object","properties":{"restoreJobFailed":{"$ref":"#/components/schemas/WebhookV1RestoreJobFailedArguments"}},"required":["restoreJobFailed"],"description":"Details of the notification.\nAlways `restoreJobFailed`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobFailedArguments"},"WebhookV1RestoreJobRejectedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."}},"description":"Details of the `RESTORE_JOB_REJECTED` notification.","title":"WebhookV1RestoreJobRejectedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobRejectedArguments":{"type":"object","properties":{"restoreJobRejected":{"$ref":"#/components/schemas/WebhookV1RestoreJobRejectedArguments"}},"required":["restoreJobRejected"],"description":"Details of the notification.\nAlways `restoreJobRejected`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingRestoreJobRejectedArguments"},"WebhookV1ClassificationJobFailedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"Details of the `CLASSIFICATION_JOB_FAILED` notification.","title":"WebhookV1ClassificationJobFailedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobFailedArguments":{"type":"object","properties":{"classificationJobFailed":{"$ref":"#/components/schemas/WebhookV1ClassificationJobFailedArguments"}},"required":["classificationJobFailed"],"description":"Details of the notification.\nAlways `classificationJobFailed`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobFailedArguments"},"WebhookV1ClassificationJobSkippedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."}},"description":"Details of the `CLASSIFICATION_JOB_SKIPPED` notification.","title":"WebhookV1ClassificationJobSkippedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobSkippedArguments":{"type":"object","properties":{"classificationJobSkipped":{"$ref":"#/components/schemas/WebhookV1ClassificationJobSkippedArguments"}},"required":["classificationJobSkipped"],"description":"Details of the notification.\nAlways `classificationJobSkipped`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobSkippedArguments"},"WebhookV1ClassificationJobRejectedArguments":{"type":"object","properties":{"id":{"type":"string","description":"Job ID."},"startTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"endTime":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userMessage":{"type":"string","description":"Explanation of the job outcome."}},"description":"Details of the `CLASSIFICATION_JOB_REJECTED` notification.","title":"WebhookV1ClassificationJobRejectedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobRejectedArguments":{"type":"object","properties":{"classificationJobRejected":{"$ref":"#/components/schemas/WebhookV1ClassificationJobRejectedArguments"}},"required":["classificationJobRejected"],"description":"Details of the notification.\nAlways `classificationJobRejected`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingClassificationJobRejectedArguments"},"WebhookV1BackupPolicyNotificationArguments":{"type":"object","properties":{"id":{"type":"string","description":"Policy ID."},"resourceIds":{"type":"array","items":{"type":"string"},"description":"IDs of the affected resources."},"totalResources":{"type":"integer","description":"Total number of affected resources."},"name":{"type":"string","description":"Policy name."},"resourceNames":{"type":"array","items":{"type":"string"},"description":"Names of the affected resources."}},"description":"Details of the resources a policy was applied to or unapplied from.","title":"WebhookV1BackupPolicyNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments":{"type":"object","properties":{"backupPolicyNotificationArguments":{"$ref":"#/components/schemas/WebhookV1BackupPolicyNotificationArguments"}},"required":["backupPolicyNotificationArguments"],"description":"Details of the notification.\nAlways `backupPolicyNotificationArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments"},"WebhookV1PolicyArguments":{"type":"object","properties":{"id":{"type":"string","description":"Policy ID."},"name":{"type":"string","description":"Policy name."},"dateCreated":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"dateModified":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"userCreatedName":{"type":"string","description":"Name of the user who created the policy."},"userModifiedName":{"type":"string","description":"Name of the user who last modified the policy."}},"description":"Details of the policy a notification refers to.","title":"WebhookV1PolicyArguments"},"WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments":{"type":"object","properties":{"policyArguments":{"$ref":"#/components/schemas/WebhookV1PolicyArguments"}},"required":["policyArguments"],"description":"Details of the notification.\nAlways `policyArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments"},"WebhookV1VaultArguments":{"type":"object","properties":{"id":{"type":"string","description":"Vault ID."},"name":{"type":"string","description":"Vault name."}},"description":"Details of the vault a notification refers to.","title":"WebhookV1VaultArguments"},"WebhookV1StandardPayloadDiscriminatorMappingBackupVaultDeletedArguments":{"type":"object","properties":{"vaultArguments":{"$ref":"#/components/schemas/WebhookV1VaultArguments"}},"required":["vaultArguments"],"description":"Details of the notification.\nAlways `vaultArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingBackupVaultDeletedArguments"},"WebhookV1CloudAccountArguments":{"type":"object","properties":{"providerAccountId":{"type":"string","description":"Cloud-provider-assigned account ID."},"type":{"type":"string","description":"Cloud account type."},"cloudProvider":{"type":"string","description":"Cloud provider."},"projectId":{"type":"string","description":"ID of the project the cloud account belongs to."}},"description":"Details of the cloud account a notification refers to.","title":"WebhookV1CloudAccountArguments"},"WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments":{"type":"object","properties":{"cloudAccountArguments":{"$ref":"#/components/schemas/WebhookV1CloudAccountArguments"}},"required":["cloudAccountArguments"],"description":"Details of the notification.\nAlways `cloudAccountArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments"},"WebhookV1ConclusionTypes":{"type":"string","enum":["0","1","2","3","4","5","6","7"],"description":"Conclusion of a security scan.\nSent as the integer value.\nOmitted when `0`.\n\n- `0`: `UNKNOWN_CONCLUSION`\n- `1`: `CLEAN`\n- `2`: `HIGH_CHANCE_FOR_RANSOMWARE`\n- `3`: `DATA_ANOMALY_DETECTED`\n- `4`: `MALWARE_DETECTED`\n- `5`: `AI_DATA_RISK_DETECTED`\n- `6`: `DATA_EXPOSURE_RISK_DETECTED`\n- `7`: `VULNERABLE_APPLICATION_DETECTED`\n","title":"WebhookV1ConclusionTypes"},"WebhookV1SecurityEvidence":{"type":"object","properties":{"type":{"type":"string","description":"Evidence type."},"displayName":{"type":"string","description":"Display name of the evidence."}},"description":"Evidence behind a security scan finding.","title":"WebhookV1SecurityEvidence"},"WebhookV1AnomalyDataPoint":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"actual_value":{"type":"number","format":"double","description":"Observed value."},"forecast_value":{"type":"number","format":"double","description":"Forecast value."},"upper_bound":{"type":"number","format":"double","description":"Upper bound of the expected range."},"lower_bound":{"type":"number","format":"double","description":"Lower bound of the expected range."},"is_anomaly":{"type":"boolean","description":"Whether the point is flagged as an anomaly."},"snapshot_id":{"type":"string","description":"Eon-assigned ID of the snapshot associated with the point."},"point_in_time":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"A single point of a data anomaly time series.","title":"WebhookV1AnomalyDataPoint"},"WebhookV1AnomalyGraphData":{"type":"object","properties":{"data_points":{"type":"array","items":{"$ref":"#/components/schemas/WebhookV1AnomalyDataPoint"},"description":"Points of the time series."}},"description":"Time series behind a data anomaly finding.","title":"WebhookV1AnomalyGraphData"},"WebhookV1FindingObjectType":{"type":"string","enum":["0","1","2","3","4"],"description":"Type of the object a security scan finding refers to.\nSent as the integer value.\nOmitted when `0`.\n\n- `0`: `FINDING_OBJECT_TYPE_UNSPECIFIED`\n- `1`: `FINDING_OBJECT_TYPE_PATH`\n- `2`: `FINDING_OBJECT_TYPE_TABLE`\n- `3`: `FINDING_OBJECT_TYPE_DATABASE`\n- `4`: `FINDING_OBJECT_TYPE_KMS_KEY`\n","title":"WebhookV1FindingObjectType"},"WebhookV1SecurityScanResult":{"type":"object","properties":{"evidence":{"$ref":"#/components/schemas/WebhookV1SecurityEvidence"},"justification":{"type":"string","description":"Justification of the finding."},"score":{"type":"string","title":"float","description":"Score of the finding."},"anomaly_graph":{"$ref":"#/components/schemas/WebhookV1AnomalyGraphData"},"path":{"type":"string","description":"Path of the object the finding refers to."},"type":{"$ref":"#/components/schemas/WebhookV1FindingObjectType"}},"description":"A single finding of a security scan.","title":"WebhookV1SecurityScanResult"},"WebhookV1SecurityScanApproval":{"type":"string","enum":["0","1","2"],"description":"Approval status of a security scan.\nSent as the integer value; omitted when it's `0`.\n\n- `0`: `SECURITY_APPROVAL_UNSPECIFIED`\n- `1`: `SECURITY_UNAPPROVED`\n- `2`: `SECURITY_APPROVED`\n","title":"WebhookV1SecurityScanApproval"},"WebhookV1DetectorType":{"type":"string","enum":["0","1","2","3","4","5","6"],"description":"Detector that produced a security scan.\nSent as the integer value; omitted when it's `0`.\n\n- `0`: `UNKNOWN_DETECTOR`\n- `1`: `MALWARE`\n- `2`: `RANSOMWARE_BEHAVIOR`\n- `3`: `DATA_ANOMALY`\n- `4`: `AI_DATA_RISK`\n- `5`: `DATA_EXPOSURE_RISK`\n- `6`: `VULNERABLE_APPLICATION`\n","title":"WebhookV1DetectorType"},"WebhookV1ReviewerType":{"type":"string","enum":["0","2"],"description":"Reviewer of a security scan.\nSent as the integer value; omitted when it's `0`.\n\n- `0`: `NOT_REVIEWED`\n- `2`: `LLM_REVIEWER`\n","title":"WebhookV1ReviewerType"},"WebhookV1RiskLevel":{"type":"string","enum":["0","1","2","3","4"],"description":"Risk level of a security scan.\nSent as the integer value; omitted when it's `0`.\n\n- `0`: `RISK_LEVEL_UNSPECIFIED`\n- `1`: `RISK_LEVEL_LOW`\n- `2`: `RISK_LEVEL_MEDIUM`\n- `3`: `RISK_LEVEL_HIGH`\n- `4`: `RISK_LEVEL_CRITICAL`\n","title":"WebhookV1RiskLevel"},"WebhookV1SecurityScan":{"type":"object","properties":{"projectId":{"type":"string","description":"Project ID."},"snapshotId":{"type":"string","description":"Eon-assigned snapshot ID."},"resourceId":{"type":"string","description":"Eon-assigned resource ID."},"dateCreated":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"updatedAt":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"},"conclusion":{"$ref":"#/components/schemas/WebhookV1ConclusionTypes"},"results":{"type":"array","items":{"$ref":"#/components/schemas/WebhookV1SecurityScanResult"},"description":"Individual findings of the scan."},"approval":{"$ref":"#/components/schemas/WebhookV1SecurityScanApproval"},"confidence_score":{"type":"string","title":"float","description":"Confidence score of the conclusion."},"justification":{"type":"string","description":"Justification of the conclusion."},"detector_type":{"$ref":"#/components/schemas/WebhookV1DetectorType"},"reviewer_type":{"$ref":"#/components/schemas/WebhookV1ReviewerType"},"reviewer_is_ransomware":{"type":"boolean","description":"Whether the reviewer classified the finding as ransomware. Omitted when the finding wasn't reviewed."},"reviewer_confidence_score":{"type":"integer","description":"Confidence score of the reviewer. Omitted when the finding wasn't reviewed."},"reviewer_reason":{"type":"string","description":"Reviewer's reasoning."},"reviewer_prompt_version":{"type":"string","description":"Version of the reviewer prompt."},"risk_level":{"$ref":"#/components/schemas/WebhookV1RiskLevel"},"risk_reason":{"type":"string","description":"Reason for the risk level."},"risk_model_version":{"type":"string","description":"Version of the risk model."},"total_results_count":{"type":"integer","description":"Total number of findings, which can exceed the number of entries in `results`."}},"description":"Result of a security scan of a snapshot.","title":"WebhookV1SecurityScan"},"WebhookV1ResourceArguments":{"type":"object","properties":{"providerId":{"type":"string","description":"Cloud-provider-assigned ID of the resource."},"name":{"type":"string","description":"Name of the resource."},"securityScan":{"$ref":"#/components/schemas/WebhookV1SecurityScan"},"resourceType":{"type":"string","description":"Resource type."}},"description":"Details of the resource a notification refers to.","title":"WebhookV1ResourceArguments"},"WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments":{"type":"object","properties":{"resourceArguments":{"$ref":"#/components/schemas/WebhookV1ResourceArguments"}},"required":["resourceArguments"],"description":"Details of the notification.\nAlways `resourceArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments"},"WebhookV1SnapshotArguments":{"type":"object","properties":{"resourceProviderId":{"type":"string","description":"Cloud-provider-assigned ID of the snapshot's resource."},"resourceName":{"type":"string","description":"Name of the snapshot's resource."},"snapshotId":{"type":"string","description":"Eon-assigned snapshot ID."},"securityScan":{"$ref":"#/components/schemas/WebhookV1SecurityScan"},"resourceType":{"type":"string","description":"Resource type."}},"description":"Details of the snapshot a notification refers to.","title":"WebhookV1SnapshotArguments"},"WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments":{"type":"object","properties":{"snapshotArguments":{"$ref":"#/components/schemas/WebhookV1SnapshotArguments"}},"required":["snapshotArguments"],"description":"Details of the notification.\nAlways `snapshotArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments"},"WebhookV1InitiatorArguments":{"type":"object","properties":{"userId":{"type":"string","description":"User ID."},"userName":{"type":"string","description":"User name."}},"description":"Details of the user who initiated the action that triggered the notification.","title":"WebhookV1InitiatorArguments"},"WebhookV1StandardPayloadDiscriminatorMappingSnapshotUserUnprotectedArguments":{"type":"object","properties":{"snapshotArguments":{"$ref":"#/components/schemas/WebhookV1SnapshotArguments"},"initiatorArguments":{"$ref":"#/components/schemas/WebhookV1InitiatorArguments"}},"required":["snapshotArguments","initiatorArguments"],"description":"Details of the notification.\nAlways `snapshotArguments` and `initiatorArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingSnapshotUserUnprotectedArguments"},"WebhookV1SnapshotAccessDeniedArguments":{"type":"object","properties":{"jobId":{"type":"string","description":"ID of the backup job that created the snapshot."},"resourceName":{"type":"string","description":"Name of the resource."},"resourceProviderId":{"type":"string","description":"Cloud-provider-assigned ID of the resource."},"accessDeniedItems":{"type":"integer","format":"int64","description":"Number of items the backup couldn't access."},"accessDeniedBytes":{"type":"integer","format":"int64","description":"Total size, in bytes, of the items the backup couldn't access."},"resourceType":{"type":"string","description":"Resource type."}},"description":"Details of the snapshot that includes items Eon was denied access to.","title":"WebhookV1SnapshotAccessDeniedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingSnapshotIncludesAccessDeniedItemsArguments":{"type":"object","properties":{"snapshotAccessDenied":{"$ref":"#/components/schemas/WebhookV1SnapshotAccessDeniedArguments"}},"required":["snapshotAccessDenied"],"description":"Details of the notification.\nAlways `snapshotAccessDenied`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingSnapshotIncludesAccessDeniedItemsArguments"},"WebhookV1ViolationsDetectionNotificationArguments":{"type":"object","properties":{"resourceIds":{"type":"array","items":{"type":"string"},"description":"IDs of the affected resources."},"totalResources":{"type":"integer","description":"Total number of affected resources."},"controlName":{"type":"string","description":"Name of the control."},"detected":{"type":"boolean","description":"Whether the violations were detected. Omitted when they were resolved."}},"description":"Details of control violations detected or resolved on resources.","title":"WebhookV1ViolationsDetectionNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments":{"type":"object","properties":{"violationsDetectionNotificationArguments":{"$ref":"#/components/schemas/WebhookV1ViolationsDetectionNotificationArguments"}},"required":["violationsDetectionNotificationArguments"],"description":"Details of the notification.\nAlways `violationsDetectionNotificationArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments"},"WebhookV1IssueMutedNotificationArguments":{"type":"object","properties":{"controlName":{"type":"string","description":"Name of the control."},"providerResourceId":{"type":"string","description":"Cloud-provider-assigned ID of the resource."},"muted":{"type":"boolean","description":"Whether the issue was muted. Omitted when it was unmuted."},"resourceName":{"type":"string","description":"Name of the resource."},"resourceType":{"type":"string","description":"Resource type."}},"description":"Details of the muted or unmuted issue.","title":"WebhookV1IssueMutedNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingIssueUnmutedOnResourceArguments":{"type":"object","properties":{"issueMutedNotificationArguments":{"$ref":"#/components/schemas/WebhookV1IssueMutedNotificationArguments"}},"required":["issueMutedNotificationArguments"],"description":"Details of the notification.\nAlways `issueMutedNotificationArguments`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingIssueUnmutedOnResourceArguments"},"WebhookV1JobMetricsReportFailedArguments":{"type":"object","properties":{"cloudAccountArguments":{"$ref":"#/components/schemas/WebhookV1CloudAccountArguments"},"region":{"type":"string","description":"Region of the report."},"error":{"type":"string","description":"Error message."}},"description":"Details of the failed job metrics report.","title":"WebhookV1JobMetricsReportFailedArguments"},"WebhookV1StandardPayloadDiscriminatorMappingJobMetricsReportFailedArguments":{"type":"object","properties":{"jobMetricsReportFailed":{"$ref":"#/components/schemas/WebhookV1JobMetricsReportFailedArguments"}},"required":["jobMetricsReportFailed"],"description":"Details of the notification.\nAlways `jobMetricsReportFailed`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingJobMetricsReportFailedArguments"},"WebhookV1NotificationTargetChangeArguments":{"type":"object","properties":{"policyId":{"type":"string","description":"Notification policy ID."},"policyName":{"type":"string","description":"Notification policy name."},"userName":{"type":"string","description":"Name of the user who made the change."},"timestamp":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"Details of the change to a notification policy.","title":"WebhookV1NotificationTargetChangeArguments"},"WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments":{"type":"object","properties":{"notificationTargetChange":{"$ref":"#/components/schemas/WebhookV1NotificationTargetChangeArguments"}},"required":["notificationTargetChange"],"description":"Details of the notification.\nAlways `notificationTargetChange`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments"},"WebhookV1CreditsNotificationArguments":{"type":"object","properties":{"totalCredits":{"type":"integer","format":"int64","minimum":0,"description":"Total credits in the agreement."},"remainingCredits":{"type":"integer","format":"int64","minimum":0,"description":"Remaining credits."},"usedCredits":{"type":"integer","format":"int64","minimum":0,"description":"Used credits."},"usagePercentage":{"type":"integer","format":"int64","minimum":0,"maximum":4294967295,"description":"Percentage of the total credits that's been used."},"thresholdPercentage":{"type":"integer","format":"int64","minimum":0,"maximum":4294967295,"description":"Usage threshold percentage that was crossed."},"agreementId":{"type":"string","description":"Agreement ID."}},"description":"Details of the credit usage threshold notification.","title":"WebhookV1CreditsNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingCreditsUsageThreshold95Arguments":{"type":"object","properties":{"creditsNotification":{"$ref":"#/components/schemas/WebhookV1CreditsNotificationArguments"}},"required":["creditsNotification"],"description":"Details of the notification.\nAlways `creditsNotification`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingCreditsUsageThreshold95Arguments"},"WebhookV1CreditsMonthlyUsageNotificationArguments":{"type":"object","properties":{"totalCredits":{"type":"integer","format":"int64","minimum":0,"description":"Total credits in the agreement."},"expectedMonthlyCredits":{"type":"integer","format":"int64","minimum":0,"description":"Expected monthly credit usage."},"actualMonthlyCredits":{"type":"integer","format":"int64","minimum":0,"description":"Actual monthly credit usage."},"contractMonths":{"type":"integer","format":"int64","minimum":0,"maximum":4294967295,"description":"Length of the contract, in months."},"agreementId":{"type":"string","description":"Agreement ID."},"thresholdPercentage":{"type":"integer","format":"int64","minimum":0,"maximum":4294967295,"description":"Usage threshold percentage that was crossed."}},"description":"Details of the monthly credit usage notification.","title":"WebhookV1CreditsMonthlyUsageNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingCreditsMonthlyUsage100Arguments":{"type":"object","properties":{"creditsMonthlyUsageNotification":{"$ref":"#/components/schemas/WebhookV1CreditsMonthlyUsageNotificationArguments"}},"required":["creditsMonthlyUsageNotification"],"description":"Details of the notification.\nAlways `creditsMonthlyUsageNotification`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingCreditsMonthlyUsage100Arguments"},"WebhookV1MPARequestNotificationArguments":{"type":"object","properties":{"request_id":{"type":"string","description":"Approval request ID."},"operation":{"type":"string","description":"Operation that requires approval."},"requester_email":{"type":"string","description":"Email address of the requester."},"policy_description":{"type":"string","description":"Description of the approval policy."},"approval_expires_at":{"$ref":"#/components/schemas/WebhookV1ProtobufTimestamp"}},"description":"Details of the action approval request.","title":"WebhookV1MPARequestNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments":{"type":"object","properties":{"mpaRequestNotification":{"$ref":"#/components/schemas/WebhookV1MPARequestNotificationArguments"}},"required":["mpaRequestNotification"],"description":"Details of the notification.\nAlways `mpaRequestNotification`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments"},"WebhookV1MPAReviewNotificationArguments":{"type":"object","properties":{"request_id":{"type":"string","description":"Approval request ID."},"operation":{"type":"string","description":"Operation that requires approval."},"requester_email":{"type":"string","description":"Email address of the requester."},"reviewer_email":{"type":"string","description":"Email address of the reviewer."},"decision":{"type":"string","description":"Review decision."},"comment":{"type":"string","description":"Reviewer comment."},"new_status":{"type":"string","description":"Status of the request after the review."}},"description":"Details of the review of an action approval request.","title":"WebhookV1MPAReviewNotificationArguments"},"WebhookV1StandardPayloadDiscriminatorMappingMpaRequestPartiallyApprovedArguments":{"type":"object","properties":{"mpaReviewNotification":{"$ref":"#/components/schemas/WebhookV1MPAReviewNotificationArguments"}},"required":["mpaReviewNotification"],"description":"Details of the notification.\nAlways `mpaReviewNotification`.\n","title":"WebhookV1StandardPayloadDiscriminatorMappingMpaRequestPartiallyApprovedArguments"},"WebhookV1StandardPayload":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_JOB_FAILED"],"description":"Discriminator value: BACKUP_JOB_FAILED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupJobFailedArguments","description":"Details of the notification.\nAlways `backupJobFailed`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a failed backup job."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_JOB_SKIPPED"],"description":"Discriminator value: BACKUP_JOB_SKIPPED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupJobSkippedArguments","description":"Details of the notification.\nAlways `backupJobSkipped`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a skipped backup job."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_JOB_REJECTED"],"description":"Discriminator value: BACKUP_JOB_REJECTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupJobRejectedArguments","description":"Details of the notification.\nAlways `backupJobRejected`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a rejected backup job."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_JOB_SUCCEEDED"],"description":"Discriminator value: BACKUP_JOB_SUCCEEDED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupJobSucceededArguments","description":"Details of the notification.\nAlways `backupJobSucceeded`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a successful backup job."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_JOB_PARTIAL"],"description":"Discriminator value: BACKUP_JOB_PARTIAL"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupJobPartialArguments","description":"Details of the notification.\nAlways `backupJobPartial`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a partially successful backup job."},{"type":"object","properties":{"type":{"type":"string","enum":["RESTORE_JOB_SUCCEEDED"],"description":"Discriminator value: RESTORE_JOB_SUCCEEDED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingRestoreJobSucceededArguments","description":"Details of the notification.\nAlways `restoreJobSucceeded`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a successful restore job."},{"type":"object","properties":{"type":{"type":"string","enum":["RESTORE_JOB_FAILED"],"description":"Discriminator value: RESTORE_JOB_FAILED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingRestoreJobFailedArguments","description":"Details of the notification.\nAlways `restoreJobFailed`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a failed restore job."},{"type":"object","properties":{"type":{"type":"string","enum":["RESTORE_JOB_REJECTED"],"description":"Discriminator value: RESTORE_JOB_REJECTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingRestoreJobRejectedArguments","description":"Details of the notification.\nAlways `restoreJobRejected`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a rejected restore job."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_JOB_FAILED"],"description":"Discriminator value: CLASSIFICATION_JOB_FAILED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationJobFailedArguments","description":"Details of the notification.\nAlways `classificationJobFailed`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a failed classification job."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_JOB_SKIPPED"],"description":"Discriminator value: CLASSIFICATION_JOB_SKIPPED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationJobSkippedArguments","description":"Details of the notification.\nAlways `classificationJobSkipped`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a skipped classification job."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_JOB_REJECTED"],"description":"Discriminator value: CLASSIFICATION_JOB_REJECTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationJobRejectedArguments","description":"Details of the notification.\nAlways `classificationJobRejected`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a rejected classification job."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_POLICY_APPLIED"],"description":"Discriminator value: BACKUP_POLICY_APPLIED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments","description":"Details of the notification.\nAlways `backupPolicyNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy applied to or unapplied from a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_POLICY_UNAPPLIED"],"description":"Discriminator value: BACKUP_POLICY_UNAPPLIED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments","description":"Details of the notification.\nAlways `backupPolicyNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy applied to or unapplied from a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_POLICY_APPLIED"],"description":"Discriminator value: CLASSIFICATION_POLICY_APPLIED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments","description":"Details of the notification.\nAlways `backupPolicyNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy applied to or unapplied from a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_POLICY_UNAPPLIED"],"description":"Discriminator value: CLASSIFICATION_POLICY_UNAPPLIED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyUnappliedArguments","description":"Details of the notification.\nAlways `backupPolicyNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy applied to or unapplied from a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_POLICY_CREATED"],"description":"Discriminator value: BACKUP_POLICY_CREATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_POLICY_UPDATED"],"description":"Discriminator value: BACKUP_POLICY_UPDATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_POLICY_DELETED"],"description":"Discriminator value: BACKUP_POLICY_DELETED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_POLICY_CREATED"],"description":"Discriminator value: CLASSIFICATION_POLICY_CREATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_POLICY_UPDATED"],"description":"Discriminator value: CLASSIFICATION_POLICY_UPDATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["CLASSIFICATION_POLICY_DELETED"],"description":"Discriminator value: CLASSIFICATION_POLICY_DELETED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingClassificationPolicyDeletedArguments","description":"Details of the notification.\nAlways `policyArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created, updated, or deleted policy."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_VAULT_CREATED"],"description":"Discriminator value: BACKUP_VAULT_CREATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupVaultDeletedArguments","description":"Details of the notification.\nAlways `vaultArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created or deleted vault."},{"type":"object","properties":{"type":{"type":"string","enum":["BACKUP_VAULT_DELETED"],"description":"Discriminator value: BACKUP_VAULT_DELETED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingBackupVaultDeletedArguments","description":"Details of the notification.\nAlways `vaultArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a created or deleted vault."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_CREATED"],"description":"Discriminator value: CLOUD_ACCOUNT_CREATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_UPDATED"],"description":"Discriminator value: CLOUD_ACCOUNT_UPDATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_DELETED"],"description":"Discriminator value: CLOUD_ACCOUNT_DELETED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_DEACTIVATED"],"description":"Discriminator value: CLOUD_ACCOUNT_DEACTIVATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_ACTIVATED"],"description":"Discriminator value: CLOUD_ACCOUNT_ACTIVATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["CLOUD_ACCOUNT_ACCESS_LOST"],"description":"Discriminator value: CLOUD_ACCOUNT_ACCESS_LOST"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCloudAccountAccessLostArguments","description":"Details of the notification.\nAlways `cloudAccountArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a cloud account change."},{"type":"object","properties":{"type":{"type":"string","enum":["RANSOMWARE_DETECTED_IN_RESOURCE"],"description":"Discriminator value: RANSOMWARE_DETECTED_IN_RESOURCE"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["RANSOMWARE_INFECTION_REMEDIATED"],"description":"Discriminator value: RANSOMWARE_INFECTION_REMEDIATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["RESOURCE_EXCLUDED_FROM_RANSOMWARE_DETECTION"],"description":"Discriminator value: RESOURCE_EXCLUDED_FROM_RANSOMWARE_DETECTION"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["RANSOMWARE_DETECTION_EXCLUSION_CANCELED"],"description":"Discriminator value: RANSOMWARE_DETECTION_EXCLUSION_CANCELED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["MALWARE_REMEDIATED"],"description":"Discriminator value: MALWARE_REMEDIATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["DATA_ANOMALY_REMEDIATED"],"description":"Discriminator value: DATA_ANOMALY_REMEDIATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["AI_DATA_RISK_REMEDIATED"],"description":"Discriminator value: AI_DATA_RISK_REMEDIATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["DATA_EXPOSURE_RISK_REMEDIATED"],"description":"Discriminator value: DATA_EXPOSURE_RISK_REMEDIATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskRemediatedArguments","description":"Details of the notification.\nAlways `resourceArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a security finding change on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["RANSOMWARE_DETECTED_IN_SNAPSHOT"],"description":"Discriminator value: RANSOMWARE_DETECTED_IN_SNAPSHOT"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments","description":"Details of the notification.\nAlways `snapshotArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of security scan finding a risk in a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["MALWARE_DETECTED_IN_SNAPSHOT"],"description":"Discriminator value: MALWARE_DETECTED_IN_SNAPSHOT"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments","description":"Details of the notification.\nAlways `snapshotArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of security scan finding a risk in a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["DATA_ANOMALY_DETECTED_IN_SNAPSHOT"],"description":"Discriminator value: DATA_ANOMALY_DETECTED_IN_SNAPSHOT"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments","description":"Details of the notification.\nAlways `snapshotArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of security scan finding a risk in a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["AI_DATA_RISK_DETECTED_IN_SNAPSHOT"],"description":"Discriminator value: AI_DATA_RISK_DETECTED_IN_SNAPSHOT"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments","description":"Details of the notification.\nAlways `snapshotArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of security scan finding a risk in a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["DATA_EXPOSURE_RISK_DETECTED_IN_SNAPSHOT"],"description":"Discriminator value: DATA_EXPOSURE_RISK_DETECTED_IN_SNAPSHOT"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingDataExposureRiskDetectedInSnapshotArguments","description":"Details of the notification.\nAlways `snapshotArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of security scan finding a risk in a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["SNAPSHOT_USER_PROTECTED"],"description":"Discriminator value: SNAPSHOT_USER_PROTECTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingSnapshotUserUnprotectedArguments","description":"Details of the notification.\nAlways `snapshotArguments` and `initiatorArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a user protecting or unprotecting a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["SNAPSHOT_USER_UNPROTECTED"],"description":"Discriminator value: SNAPSHOT_USER_UNPROTECTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingSnapshotUserUnprotectedArguments","description":"Details of the notification.\nAlways `snapshotArguments` and `initiatorArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a user protecting or unprotecting a snapshot."},{"type":"object","properties":{"type":{"type":"string","enum":["SNAPSHOT_INCLUDES_ACCESS_DENIED_ITEMS"],"description":"Discriminator value: SNAPSHOT_INCLUDES_ACCESS_DENIED_ITEMS"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingSnapshotIncludesAccessDeniedItemsArguments","description":"Details of the notification.\nAlways `snapshotAccessDenied`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a snapshot with items that Eon was denied access to."},{"type":"object","properties":{"type":{"type":"string","enum":["HIGH_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"],"description":"Discriminator value: HIGH_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments","description":"Details of the notification.\nAlways `violationsDetectionNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy violation detected or resolved on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["MEDIUM_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"],"description":"Discriminator value: MEDIUM_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments","description":"Details of the notification.\nAlways `violationsDetectionNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy violation detected or resolved on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["LOW_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"],"description":"Discriminator value: LOW_SEVERITY_VIOLATIONS_DETECTED_ON_RESOURCES"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments","description":"Details of the notification.\nAlways `violationsDetectionNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy violation detected or resolved on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["VIOLATIONS_RESOLVED_ON_RESOURCES"],"description":"Discriminator value: VIOLATIONS_RESOLVED_ON_RESOURCES"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingViolationsResolvedOnResourcesArguments","description":"Details of the notification.\nAlways `violationsDetectionNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a policy violation detected or resolved on a resource."},{"type":"object","properties":{"type":{"type":"string","enum":["ISSUE_MUTED_ON_RESOURCE"],"description":"Discriminator value: ISSUE_MUTED_ON_RESOURCE"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingIssueUnmutedOnResourceArguments","description":"Details of the notification.\nAlways `issueMutedNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a muted or unmuted resource issue."},{"type":"object","properties":{"type":{"type":"string","enum":["ISSUE_UNMUTED_ON_RESOURCE"],"description":"Discriminator value: ISSUE_UNMUTED_ON_RESOURCE"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingIssueUnmutedOnResourceArguments","description":"Details of the notification.\nAlways `issueMutedNotificationArguments`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a muted or unmuted resource issue."},{"type":"object","properties":{"type":{"type":"string","enum":["JOB_METRICS_REPORT_FAILED"],"description":"Discriminator value: JOB_METRICS_REPORT_FAILED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingJobMetricsReportFailedArguments","description":"Details of the notification.\nAlways `jobMetricsReportFailed`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a failed job metrics report."},{"type":"object","properties":{"type":{"type":"string","enum":["NOTIFICATION_TARGET_CREATED"],"description":"Discriminator value: NOTIFICATION_TARGET_CREATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments","description":"Details of the notification.\nAlways `notificationTargetChange`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a notification policy change."},{"type":"object","properties":{"type":{"type":"string","enum":["NOTIFICATION_TARGET_UPDATED"],"description":"Discriminator value: NOTIFICATION_TARGET_UPDATED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments","description":"Details of the notification.\nAlways `notificationTargetChange`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a notification policy change."},{"type":"object","properties":{"type":{"type":"string","enum":["NOTIFICATION_TARGET_DELETED"],"description":"Discriminator value: NOTIFICATION_TARGET_DELETED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments","description":"Details of the notification.\nAlways `notificationTargetChange`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a notification policy change."},{"type":"object","properties":{"type":{"type":"string","enum":["NOTIFICATION_TARGET_ENABLED"],"description":"Discriminator value: NOTIFICATION_TARGET_ENABLED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments","description":"Details of the notification.\nAlways `notificationTargetChange`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a notification policy change."},{"type":"object","properties":{"type":{"type":"string","enum":["NOTIFICATION_TARGET_DISABLED"],"description":"Discriminator value: NOTIFICATION_TARGET_DISABLED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingNotificationTargetDisabledArguments","description":"Details of the notification.\nAlways `notificationTargetChange`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a notification policy change."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_USAGE_THRESHOLD_75"],"description":"Discriminator value: CREDITS_USAGE_THRESHOLD_75"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsUsageThreshold95Arguments","description":"Details of the notification.\nAlways `creditsNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_USAGE_THRESHOLD_90"],"description":"Discriminator value: CREDITS_USAGE_THRESHOLD_90"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsUsageThreshold95Arguments","description":"Details of the notification.\nAlways `creditsNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_USAGE_THRESHOLD_95"],"description":"Discriminator value: CREDITS_USAGE_THRESHOLD_95"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsUsageThreshold95Arguments","description":"Details of the notification.\nAlways `creditsNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_MONTHLY_USAGE_80"],"description":"Discriminator value: CREDITS_MONTHLY_USAGE_80"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsMonthlyUsage100Arguments","description":"Details of the notification.\nAlways `creditsMonthlyUsageNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of monthly credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_MONTHLY_USAGE_90"],"description":"Discriminator value: CREDITS_MONTHLY_USAGE_90"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsMonthlyUsage100Arguments","description":"Details of the notification.\nAlways `creditsMonthlyUsageNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of monthly credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["CREDITS_MONTHLY_USAGE_100"],"description":"Discriminator value: CREDITS_MONTHLY_USAGE_100"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingCreditsMonthlyUsage100Arguments","description":"Details of the notification.\nAlways `creditsMonthlyUsageNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a crossed threshold of monthly credit usage."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_PENDING_APPROVAL"],"description":"Discriminator value: MPA_REQUEST_PENDING_APPROVAL"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments","description":"Details of the notification.\nAlways `mpaRequestNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a state change of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_EXECUTED"],"description":"Discriminator value: MPA_REQUEST_EXECUTED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments","description":"Details of the notification.\nAlways `mpaRequestNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a state change of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_EXPIRED"],"description":"Discriminator value: MPA_REQUEST_EXPIRED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments","description":"Details of the notification.\nAlways `mpaRequestNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a state change of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_CANCELLED"],"description":"Discriminator value: MPA_REQUEST_CANCELLED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestCancelledArguments","description":"Details of the notification.\nAlways `mpaRequestNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a state change of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_APPROVED"],"description":"Discriminator value: MPA_REQUEST_APPROVED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestPartiallyApprovedArguments","description":"Details of the notification.\nAlways `mpaReviewNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a review of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_DENIED"],"description":"Discriminator value: MPA_REQUEST_DENIED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestPartiallyApprovedArguments","description":"Details of the notification.\nAlways `mpaReviewNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a review of an action approval request."},{"type":"object","properties":{"type":{"type":"string","enum":["MPA_REQUEST_PARTIALLY_APPROVED"],"description":"Discriminator value: MPA_REQUEST_PARTIALLY_APPROVED"},"id":{"$ref":"#/components/schemas/WebhookV1NotificationId"},"projectId":{"$ref":"#/components/schemas/WebhookV1ProjectId"},"timestamp":{"$ref":"#/components/schemas/WebhookV1Timestamp"},"arguments":{"$ref":"#/components/schemas/WebhookV1StandardPayloadDiscriminatorMappingMpaRequestPartiallyApprovedArguments","description":"Details of the notification.\nAlways `mpaReviewNotification`.\n"}},"required":["type","id","projectId","timestamp","arguments"],"description":"Notification of a review of an action approval request."}],"discriminator":{"propertyName":"type"},"title":"WebhookV1StandardPayload"},"WebhookV1AuditEventType":{"type":"string","enum":["AUDIT_LOG_CREATED"],"description":"Event type.","title":"WebhookV1AuditEventType"},"WebhookV1AuditEventPayload":{"type":"object","properties":{},"description":"Audit log entry as object.","title":"WebhookV1AuditEventPayload"},"WebhookV1AuditEvent":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/WebhookV1AuditEventType","description":"Event type."},"payload":{"$ref":"#/components/schemas/WebhookV1AuditEventPayload","description":"Audit log entry as object."}},"required":["type","payload"],"description":"Event reporting an audit log entry.","title":"WebhookV1AuditEvent"},"WebhookV1AuditPayload":{"type":"object","properties":{"event":{"$ref":"#/components/schemas/WebhookV1AuditEvent"}},"required":["event"],"description":"Notification of a created audit log entry.\nHas the same structure as the Splunk audit log event.\n","title":"WebhookV1AuditPayload"}},"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer"}}}}