From 47a68479ab273795d3f37fd6029144c9e8b4970f Mon Sep 17 00:00:00 2001 From: "api-clients-generation-pipeline[bot]" <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 16:47:57 +0000 Subject: [PATCH 1/2] Add `name_aliases` field to `PermissionAttributes` for `ListPermissions` endpoint (#3068) Co-authored-by: ci.datadog-api-spec --- .generator/schemas/v2/openapi.yaml | 5 + ...ist-permissions-returns-OK-response.frozen | 2 +- .../List-permissions-returns-OK-response.yml | 824 ++++++++++++++---- features/v2/roles.feature | 1 + .../v2/models/permission_attributes.rb | 14 +- 5 files changed, 665 insertions(+), 181 deletions(-) diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e35a592ae93c..bd5307a92d54 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -49128,6 +49128,11 @@ components: name: description: Name of the permission. type: string + name_aliases: + description: List of alias names for the permission. + items: + type: string + type: array restricted: description: Whether or not the permission is restricted. type: boolean diff --git a/cassettes/features/v2/roles/List-permissions-returns-OK-response.frozen b/cassettes/features/v2/roles/List-permissions-returns-OK-response.frozen index ef5eef348b9c..4f711178eaef 100644 --- a/cassettes/features/v2/roles/List-permissions-returns-OK-response.frozen +++ b/cassettes/features/v2/roles/List-permissions-returns-OK-response.frozen @@ -1 +1 @@ -2022-01-06T00:52:01.679Z \ No newline at end of file +2026-03-13T15:14:58.673Z \ No newline at end of file diff --git a/cassettes/features/v2/roles/List-permissions-returns-OK-response.yml b/cassettes/features/v2/roles/List-permissions-returns-OK-response.yml index a6155a093189..05ad54cc1cb7 100644 --- a/cassettes/features/v2/roles/List-permissions-returns-OK-response.yml +++ b/cassettes/features/v2/roles/List-permissions-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Thu, 06 Jan 2022 00:52:01 GMT +- recorded_at: Fri, 13 Mar 2026 15:14:58 GMT request: body: null headers: @@ -10,187 +10,653 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":[{"type":"permissions","id":"984a2bd4-d3b4-11e8-a1ff-a7f660d43029","attributes":{"name":"admin","display_name":"Privileged - Access","description":"This permission gives you the ability to view and edit - everything in your Datadog organization that does not have an explicitly defined - permission. This includes organization settings and SAML management. This - permission is inclusive of all Standard access permissions.","created":"2018-10-19T15:35:23.734317+00:00","group_name":"General","display_type":"other","restricted":false}},{"type":"permissions","id":"984d2f00-d3b4-11e8-a200-bb47109e9987","attributes":{"name":"standard","display_name":"Standard - Access","description":"This permission gives you the ability to view and edit - components in your Datadog organization that do not have explicitly defined - permissions. This includes Notebooks, Events, and other non-Account Management - functionality.","created":"2018-10-19T15:35:23.756736+00:00","group_name":"General","display_type":"other","restricted":false}},{"type":"permissions","id":"5e605652-dd12-11e8-9e53-375565b8970e","attributes":{"name":"logs_read_index_data","display_name":"Logs - Read Index Data","description":"The ability to read all or some log indexes. - Can be granted in a limited capacity per index from the Logs interface or + string: '{"data":[{"id":"984a2bd4-d3b4-11e8-a1ff-a7f660d43029","type":"permissions","attributes":{"created":"2018-10-19T15:35:23.734317Z","description":"Deprecated. + Privileged Access (also known as Admin permission) has been replaced by more + specific permissions: Access Management, Org Management, Billing Read/Write, + Usage Read/Write.","display_name":"Privileged Access","display_type":"other","group_name":"General","name":"admin","name_aliases":[],"restricted":false}},{"id":"984d2f00-d3b4-11e8-a200-bb47109e9987","type":"permissions","attributes":{"created":"2018-10-19T15:35:23.756736Z","description":"Deprecated. + Standard Access has been replaced by more specific permissions.","display_name":"Standard + Access","display_type":"other","group_name":"General","name":"standard","name_aliases":[],"restricted":false}},{"id":"5e605652-dd12-11e8-9e53-375565b8970e","type":"permissions","attributes":{"created":"2018-10-31T13:39:19.72745Z","description":"Read + log data, possibly scoped to one or more indexes. In order to read log data, + a user must have both this permission and Logs Read Data. This permission + can be granted in a limited capacity per index from the Logs interface or APIs. If granted via the Roles interface or API the permission has global - scope.","created":"2018-10-31T13:39:19.727450+00:00","group_name":"Logs","display_type":"read","restricted":false}},{"type":"permissions","id":"62cc036c-dd12-11e8-9e54-db9995643092","attributes":{"name":"logs_modify_indexes","display_name":"Logs - Modify Indexes","description":"The ability to read and modify all indexes - in your account. This includes the ability to grant the Logs Read Index Data - and Logs Write Exclusion Filter permission to other roles, for some or all - indexes. This permission also grants global Log Index Read and Log Exclusion - Filter Write implicitly.","created":"2018-10-31T13:39:27.148615+00:00","group_name":"Logs","display_type":"other","restricted":false}},{"type":"permissions","id":"6f66600e-dd12-11e8-9e55-7f30fbb45e73","attributes":{"name":"logs_live_tail","display_name":"Logs - Live Tail Access","description":"The ability to view the live tail feed for - all log indexes, even if otherwise specifically restricted.","created":"2018-10-31T13:39:48.292879+00:00","group_name":"Logs","display_type":"read","restricted":false}},{"type":"permissions","id":"7d7c98ac-dd12-11e8-9e56-93700598622d","attributes":{"name":"logs_write_exclusion_filters","display_name":"Logs - Write Exclusion Filters","description":"The ability to add and change exclusion - filters for all or some log indexes. Can be granted in a limited capacity - per index to specific roles via the Logs interface or API. If granted from - the Roles interface or API, the permission has global scope.","created":"2018-10-31T13:40:11.926613+00:00","group_name":"Logs","display_type":"write","restricted":false}},{"type":"permissions","id":"811ac4ca-dd12-11e8-9e57-676a7f0beef9","attributes":{"name":"logs_write_pipelines","display_name":"Logs - Write Pipelines","description":"The ability to add and change log pipeline - configurations, including the ability to grant the Logs Write Processors permission - to other roles, for some or all pipelines. This permission also grants global - Log Processor Write implicitly.","created":"2018-10-31T13:40:17.996379+00:00","group_name":"Logs","display_type":"other","restricted":false}},{"type":"permissions","id":"84aa3ae4-dd12-11e8-9e58-a373a514ccd0","attributes":{"name":"logs_write_processors","display_name":"Logs - Write Processors","description":"The ability to add and change some or all - log processor configurations. Can be granted in a limited capacity per pipeline - to specific roles via the Logs interface or API. If granted via the Roles - interface or API the permission has global scope.","created":"2018-10-31T13:40:23.969725+00:00","group_name":"Logs","display_type":"write","restricted":false}},{"type":"permissions","id":"87b00304-dd12-11e8-9e59-cbeb5f71f72f","attributes":{"name":"logs_write_archives","display_name":"Logs - Archives","description":"The ability to add and edit log archive locations.","created":"2018-10-31T13:40:29.040786+00:00","group_name":"Logs","display_type":"write","restricted":false}},{"type":"permissions","id":"1a92ede2-6cb2-11e9-99c6-2b3a4a0cdf0a","attributes":{"name":"logs_public_config_api","display_name":"Logs - Public Config API","description":"The ability to access and edit logs configurations - via the API.","created":"2019-05-02T08:13:01.731092+00:00","group_name":"Logs","display_type":"other","restricted":false}},{"type":"permissions","id":"979df720-aed7-11e9-99c6-a7eb8373165a","attributes":{"name":"logs_generate_metrics","display_name":"Logs - Generate Metrics","description":"The ability to create custom metrics from - logs.","created":"2019-07-25T12:27:39.640758+00:00","group_name":"Logs","display_type":"other","restricted":false}},{"type":"permissions","id":"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2","attributes":{"name":"dashboards_read","display_name":"Dashboards","description":"The - ability to view dashboards.","created":"2019-09-10T14:39:51.955175+00:00","group_name":"Dashboards","display_type":"read","restricted":true}},{"type":"permissions","id":"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a","attributes":{"name":"dashboards_write","display_name":"Dashboards","description":"The - ability to create and change dashboards.","created":"2019-09-10T14:39:51.962944+00:00","group_name":"Dashboards","display_type":"write","restricted":false}},{"type":"permissions","id":"d90f6832-d3d8-11e9-a77a-bf8a2607f864","attributes":{"name":"dashboards_public_share","display_name":"Dashboards - Share","description":"The ability to share dashboards externally.","created":"2019-09-10T14:39:51.967094+00:00","group_name":"Dashboards","display_type":"other","restricted":false}},{"type":"permissions","id":"4441648c-d8b1-11e9-a77a-1b899a04b304","attributes":{"name":"monitors_read","display_name":"Monitors","description":"The - ability to view monitors.","created":"2019-09-16T18:39:07.744297+00:00","group_name":"Monitors","display_type":"read","restricted":true}},{"type":"permissions","id":"48ef71ea-d8b1-11e9-a77a-93f408470ad0","attributes":{"name":"monitors_write","display_name":"Monitors","description":"The - ability to change, mute, and delete individual monitors.","created":"2019-09-16T18:39:15.597109+00:00","group_name":"Monitors","display_type":"write","restricted":false}},{"type":"permissions","id":"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f","attributes":{"name":"monitors_downtime","display_name":"Monitors - Manage Downtimes","description":"The ability to set downtimes to suppress - alerts from any monitor in an organization. The ability to write monitors - is not required to set downtimes.","created":"2019-09-16T18:39:23.306702+00:00","group_name":"Monitors","display_type":"other","restricted":false}},{"type":"permissions","id":"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb","attributes":{"name":"logs_read_data","display_name":"Logs - Read Data","description":"The ability to read log data. Can be restricted - with restriction queries.","created":"2020-04-06T16:24:35.989108+00:00","group_name":"Logs","display_type":"read","restricted":false}},{"type":"permissions","id":"b382b982-8535-11ea-93de-2bf1bdf20798","attributes":{"name":"logs_read_archives","display_name":"Logs - Archives","description":"The ability to read logs archives location and use - it for rehydration.","created":"2020-04-23T07:40:27.966133+00:00","group_name":"Logs","display_type":"read","restricted":false}},{"type":"permissions","id":"7314eb20-aa58-11ea-95e2-6fb6e4a451d5","attributes":{"name":"security_monitoring_rules_read","display_name":"Detection - Rules","description":"The ability to read Detection rules.","created":"2020-06-09T13:52:25.279909+00:00","group_name":"Security - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"7b516476-aa58-11ea-95e2-93718cd56369","attributes":{"name":"security_monitoring_rules_write","display_name":"Detection - Rules","description":"The ability to create and edit Detection rules.","created":"2020-06-09T13:52:39.099413+00:00","group_name":"Security - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"80de1ec0-aa58-11ea-95e2-aff381626d5d","attributes":{"name":"security_monitoring_signals_read","display_name":"Security - Signals","description":"The ability to view Security signals.","created":"2020-06-09T13:52:48.410398+00:00","group_name":"Security - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"58b412cc-ff6d-11eb-bc9c-da7ad0900002","attributes":{"name":"security_monitoring_signals_write","display_name":"Security - Signals","description":"The ability to modify Security signals.","created":"2021-08-17T15:11:06.963503+00:00","group_name":"Security - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d","attributes":{"name":"user_access_invite","display_name":"Invite - User","description":"The ability to invite other users to your organization.","created":"2020-08-25T19:17:23.539701+00:00","group_name":"Access - Management","display_type":"other","restricted":false}},{"type":"permissions","id":"9de604d8-e707-11ea-aa2d-93f1a783b3a3","attributes":{"name":"user_access_manage","display_name":"Access - Management","description":"The ability to disable users, manage user roles, - and manage SAML-to-role mappings.","created":"2020-08-25T19:17:28.810412+00:00","group_name":"Access - Management","display_type":"other","restricted":false}},{"type":"permissions","id":"46a301da-ec5c-11ea-aa9f-73bedeab67ee","attributes":{"name":"user_app_keys","display_name":"User - Application Keys","description":"The ability to view and manage Application - Keys owned by the user.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"API - and Application Keys","display_type":"other","restricted":false}},{"type":"permissions","id":"46a301db-ec5c-11ea-aa9f-2fe72193d60e","attributes":{"name":"org_app_keys_read","display_name":"Organization - Application Keys","description":"The ability to view Application Keys owned - by all users in the organization.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"API - and Application Keys","display_type":"read","restricted":false}},{"type":"permissions","id":"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea","attributes":{"name":"org_app_keys_write","display_name":"Organization - Application Keys","description":"The ability to manage Application Keys owned - by all users in the organization.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"API - and Application Keys","display_type":"write","restricted":false}},{"type":"permissions","id":"46a301dd-ec5c-11ea-aa9f-97edfb345bc9","attributes":{"name":"synthetics_private_location_read","display_name":"Private - Locations","description":"The ability to view, search and use in tests the - list of private locations available.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Synthetic - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"46a301de-ec5c-11ea-aa9f-a73252c24806","attributes":{"name":"synthetics_private_location_write","display_name":"Private - Locations","description":"The ability to create and delete private locations - as well as seeing the associated installation guidelines.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Synthetic - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"46a301df-ec5c-11ea-aa9f-970a9ae645e5","attributes":{"name":"billing_read","display_name":"Billing","description":"The - ability to view your organization''s subscription and payment method but not - make edits.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Billing - and Usage","display_type":"read","restricted":false}},{"type":"permissions","id":"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c","attributes":{"name":"billing_edit","display_name":"Billing","description":"The - ability to manage your organization''s subscription and payment method.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Billing - and Usage","display_type":"write","restricted":false}},{"type":"permissions","id":"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36","attributes":{"name":"usage_read","display_name":"Usage","description":"The - ability to view your organization''s usage and usage attribution.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Billing - and Usage","display_type":"read","restricted":false}},{"type":"permissions","id":"46a301e2-ec5c-11ea-aa9f-1f511b7305fd","attributes":{"name":"usage_edit","display_name":"Usage","description":"The - ability to manage your organization''s usage attribution set-up.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Billing - and Usage","display_type":"write","restricted":false}},{"type":"permissions","id":"46a301e4-ec5c-11ea-aa9f-87282b3a50cc","attributes":{"name":"metric_tags_write","display_name":"Manage - Tags for Metrics","description":"The ability to edit and save tag configurations - for custom metrics.","created":"2020-09-01T14:06:05.444705+00:00","group_name":"Metrics","display_type":"write","restricted":false}},{"type":"permissions","id":"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e","attributes":{"name":"logs_write_historical_view","display_name":"Logs - Historical View","description":"The capability to rehydrate logs from Archives.","created":"2020-09-16T08:38:44.242076+00:00","group_name":"Logs","display_type":"write","restricted":false}},{"type":"permissions","id":"2fbdac76-f923-11ea-adbc-07f3823e2b43","attributes":{"name":"audit_logs_read","display_name":"Audit - Logs","description":"The ability to view Audit Logs in your organization.","created":"2020-09-17T20:20:10.834252+00:00","group_name":"Organization - Management","display_type":"read","restricted":false}},{"type":"permissions","id":"372896c4-f923-11ea-adbc-4fecd107156d","attributes":{"name":"api_keys_read","display_name":"API - Keys","description":"The ability to list and retrieve the key values of all - API Keys in your organization.","created":"2020-09-17T20:20:23.279769+00:00","group_name":"API - and Application Keys","display_type":"read","restricted":false}},{"type":"permissions","id":"3e4d4d28-f923-11ea-adbc-e3565938c12e","attributes":{"name":"api_keys_write","display_name":"API - Keys","description":"The ability to create, rename, and revoke API Keys for - your organization.","created":"2020-09-17T20:20:35.264430+00:00","group_name":"API - and Application Keys","display_type":"write","restricted":false}},{"type":"permissions","id":"4628ca54-f923-11ea-adbc-4b2b7f88c5e9","attributes":{"name":"synthetics_global_variable_read","display_name":"Global - Variables","description":"The ability to view, search and use in tests the - list of global variables available for Synthetics.","created":"2020-09-17T20:20:48.446916+00:00","group_name":"Synthetic - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"4ada6e36-f923-11ea-adbc-0788e5c5e3cf","attributes":{"name":"synthetics_global_variable_write","display_name":"Global - Variables","description":"The ability to create, edit, and delete global variables - for Synthetics.","created":"2020-09-17T20:20:56.322003+00:00","group_name":"Synthetic - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"5025ee24-f923-11ea-adbc-576ea241df8d","attributes":{"name":"synthetics_read","display_name":"Synthetic - Tests","description":"The ability to list and view configured Synthetic tests.","created":"2020-09-17T20:21:05.205361+00:00","group_name":"Synthetic - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"55f4b5ec-f923-11ea-adbc-1bfa2334a755","attributes":{"name":"synthetics_write","display_name":"Synthetic - Tests","description":"The ability to create, edit, and delete Synthetic tests.","created":"2020-09-17T20:21:14.949140+00:00","group_name":"Synthetic - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"5c6b88e2-f923-11ea-adbc-abf57d079420","attributes":{"name":"synthetics_default_settings_read","display_name":"Default - Settings","description":"The ability to view default settings for Synthetics - Monitoring.","created":"2020-09-17T20:21:25.794160+00:00","group_name":"Synthetic - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"642eebe6-f923-11ea-adbc-eb617674ea04","attributes":{"name":"synthetics_default_settings_write","display_name":"Default - Settings","description":"The ability to edit default settings for Synthetics - Monitoring.","created":"2020-09-17T20:21:38.818771+00:00","group_name":"Synthetic - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39","attributes":{"name":"logs_write_facets","display_name":"Logs - Facets","description":"The capability to create or edit logs facets.","created":"2020-10-14T12:40:20.271908+00:00","group_name":"Logs","display_type":"write","restricted":false}},{"type":"permissions","id":"a42e94b2-1476-11eb-bd08-efda28c04248","attributes":{"name":"service_account_write","display_name":"Service - Accounts","description":"The ability to create, disable and use Service Accounts - in your organization.","created":"2020-10-22T14:55:35.814239+00:00","group_name":"Access - Management","display_type":"write","restricted":false}},{"type":"permissions","id":"fcac2ad8-2843-11eb-8315-0fe47949d625","attributes":{"name":"integrations_api","display_name":"Integrations - API Access","description":"The ability to use the Integrations APIs to configure - Integrations that the user has access to. This permission does not restrict - or grant access to Integrations.","created":"2020-11-16T19:43:23.198568+00:00","group_name":"Integrations","display_type":"other","restricted":false}},{"type":"permissions","id":"417ba636-2dce-11eb-84c0-6bce5b0d9de0","attributes":{"name":"apm_read","display_name":"APM - Read Access","description":"The ability to read and query APM and Trace Analytics.","created":"2020-11-23T20:55:45.006110+00:00","group_name":"APM","display_type":"read","restricted":true}},{"type":"permissions","id":"43fa188e-2dce-11eb-84c0-835ad1fd6287","attributes":{"name":"apm_retention_filter_read","display_name":"Manage - Retention Filters","description":"The ability to read trace retention filters. - A user with this permission can view the retention filters page, list of filters, - their statistics, and creation info.","created":"2020-11-23T20:55:49.190595+00:00","group_name":"APM","display_type":"read","restricted":false}},{"type":"permissions","id":"465cfe66-2dce-11eb-84c0-6baa888239fa","attributes":{"name":"apm_retention_filter_write","display_name":"Manage - Retention Filters","description":"The ability to create, edit and delete trace - retention filters. A user with this permission can create new retention filters, - and update or delete to existing retention filters.","created":"2020-11-23T20:55:53.194236+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"4916eebe-2dce-11eb-84c0-271cb2c672e8","attributes":{"name":"apm_service_ingest_read","display_name":"Manage - Service Ingestion","description":"The ability to access Service Ingestion - pages. A user with this permission can view the service ingestion page, list - of root service, their statistics, and creation info.","created":"2020-11-23T20:55:57.768261+00:00","group_name":"APM","display_type":"read","restricted":false}},{"type":"permissions","id":"4e3f02b4-2dce-11eb-84c0-2fca946a6efc","attributes":{"name":"apm_service_ingest_write","display_name":"Manage - Service Ingestion","description":"The ability to edit Service Ingestion pages - root services. A user with this permission can edit the root service ingestion - and generate a code snippet to increase ingestion per service.","created":"2020-11-23T20:56:06.419518+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"53950c54-2dce-11eb-84c0-a79ae108f6f8","attributes":{"name":"apm_apdex_manage_write","display_name":"Apdex - Management","description":"The ability to set Apdex T value on any service. - A user with this permission can set the T value from the Apdex graph on the - service page.","created":"2020-11-23T20:56:15.371926+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076","attributes":{"name":"apm_tag_management_write","display_name":"Primary - Tag Management","description":"The ability to edit second primary tag selection. - A user with this permission can modify the second primary tag dropdown in - the APM settings page.","created":"2020-11-23T20:56:30.742299+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"61765026-2dce-11eb-84c0-833e230d1b8f","attributes":{"name":"apm_primary_operation_write","display_name":"Primary - Operation","description":"The ability to edit the operation name value selection. - A user with this permission can modify the operation name list in the APM - settings page and can modify the operation name controller on the service - page.","created":"2020-11-23T20:56:38.658649+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"04bc1cf2-340a-11eb-873a-43b973c760dd","attributes":{"name":"audit_logs_write","display_name":"Audit - Logs","description":"The ability to configure Audit Logs in your organization.","created":"2020-12-01T19:18:39.866516+00:00","group_name":"Organization - Management","display_type":"write","restricted":false}},{"type":"permissions","id":"8106300a-54f7-11eb-8cbc-7781a434a67b","attributes":{"name":"rum_apps_write","display_name":"RUM - Applications","description":"The ability to create, edit, and delete RUM Applications.","created":"2021-01-12T16:59:16.324480+00:00","group_name":"Real - User Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"bf0dcf7c-90af-11eb-9b82-da7ad0900002","attributes":{"name":"data_scanner_read","display_name":"Data - Scanner","description":"View data scanner configuration.","created":"2021-03-29T16:56:46.394971+00:00","group_name":"Access - Management","display_type":"read","restricted":false}},{"type":"permissions","id":"bf0dcf7d-90af-11eb-9b82-da7ad0900002","attributes":{"name":"data_scanner_write","display_name":"Data - Scanner","description":"Edit data scanner configuration.","created":"2021-03-29T16:56:46.398584+00:00","group_name":"Access - Management","display_type":"write","restricted":false}},{"type":"permissions","id":"98b984f4-b16d-11eb-a2c6-da7ad0900002","attributes":{"name":"security_monitoring_filters_read","display_name":"Security - Filters","description":"The ability to read Security Filters.","created":"2021-05-10T08:56:23.676833+00:00","group_name":"Security - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"98b984f5-b16d-11eb-a2c6-da7ad0900002","attributes":{"name":"security_monitoring_filters_write","display_name":"Security - Filters","description":"The ability to create, edit and delete Security Filters.","created":"2021-05-10T08:56:23.680551+00:00","group_name":"Security - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"12efc20e-d36c-11eb-a9b8-da7ad0900002","attributes":{"name":"incident_read","display_name":"Incidents - App Experience","description":"The ability to view incidents in Datadog.","created":"2021-06-22T15:11:09.255499+00:00","group_name":"Incidents","display_type":"read","restricted":true}},{"type":"permissions","id":"12efc211-d36c-11eb-a9b8-da7ad0900002","attributes":{"name":"incident_write","display_name":"Incidents - App Experience","description":"The ability to create, view, and manage incidents - in Datadog.","created":"2021-06-22T15:11:09.264369+00:00","group_name":"Incidents","display_type":"write","restricted":false}},{"type":"permissions","id":"12efc20f-d36c-11eb-a9b8-da7ad0900002","attributes":{"name":"incident_settings_read","display_name":"Incidents - Settings","description":"The ability to view incidents Settings.","created":"2021-06-22T15:11:09.259568+00:00","group_name":"Incidents","display_type":"read","restricted":false}},{"type":"permissions","id":"12efc210-d36c-11eb-a9b8-da7ad0900002","attributes":{"name":"incident_settings_write","display_name":"Incidents - Settings","description":"The ability to configure incident settings.","created":"2021-06-22T15:11:09.261986+00:00","group_name":"Incidents","display_type":"write","restricted":false}},{"type":"permissions","id":"97971c1c-e895-11eb-b13c-da7ad0900002","attributes":{"name":"appsec_event_rule_read","display_name":"Application - Security Event Rules","description":"The ability to view Application Security - Event Rules.","created":"2021-07-19T13:31:15.595771+00:00","group_name":"Application - Security","display_type":"read","restricted":true}},{"type":"permissions","id":"97971c1d-e895-11eb-b13c-da7ad0900002","attributes":{"name":"appsec_event_rule_write","display_name":"Application - Security Event Rules","description":"The ability to edit Application Security - Event Rules.","created":"2021-07-19T13:31:15.598808+00:00","group_name":"Application - Security","display_type":"write","restricted":false}},{"type":"permissions","id":"7605ef24-f376-11eb-b90b-da7ad0900002","attributes":{"name":"rum_apps_read","display_name":"RUM - Applications","description":"The ability to view RUM Applications data.","created":"2021-08-02T09:46:07.671535+00:00","group_name":"Real - User Monitoring","display_type":"read","restricted":true}},{"type":"permissions","id":"7605ef25-f376-11eb-b90b-da7ad0900002","attributes":{"name":"rum_session_replay_read","display_name":"Session - Replay","description":"The ability to view session replays.","created":"2021-08-02T09:46:07.674640+00:00","group_name":"Real - User Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"c95412b8-16c7-11ec-85c0-da7ad0900002","attributes":{"name":"security_monitoring_notification_profiles_read","display_name":"Notification - Profiles","description":"The ability to read Notification Profiles.","created":"2021-09-16T08:26:27.366789+00:00","group_name":"Security - Monitoring","display_type":"read","restricted":false}},{"type":"permissions","id":"c95412b9-16c7-11ec-85c0-da7ad0900002","attributes":{"name":"security_monitoring_notification_profiles_write","display_name":"Notification - Profiles","description":"The ability to create, edit and delete Notification - Profiles.","created":"2021-09-16T08:26:27.369359+00:00","group_name":"Security - Monitoring","display_type":"write","restricted":false}},{"type":"permissions","id":"26c79920-1703-11ec-85d2-da7ad0900002","attributes":{"name":"apm_generate_metrics","display_name":"Generate - Metrics","description":"The ability to create custom metrics from spans.","created":"2021-09-16T15:31:24.458963+00:00","group_name":"APM","display_type":"other","restricted":false}},{"type":"permissions","id":"020a563c-56a4-11ec-a982-da7ad0900002","attributes":{"name":"apm_pipelines_write","display_name":"Manage - Pipelines","description":"The ability to add and change APM pipeline configurations.","created":"2021-12-06T14:51:35.049129+00:00","group_name":"APM","display_type":"write","restricted":false}},{"type":"permissions","id":"8e4d6b6e-5750-11ec-a9f4-da7ad0900002","attributes":{"name":"apm_pipelines_read","display_name":"Manage - Pipelines","description":"The ability to view APM pipeline configurations.","created":"2021-12-07T11:26:43.807269+00:00","group_name":"APM","display_type":"read","restricted":false}}]}' + scope. Restrictions are limited to the Log Management product.","display_name":"Logs + Read Index Data","display_type":"read","group_name":"Log Management","name":"logs_read_index_data","name_aliases":[],"restricted":false}},{"id":"62cc036c-dd12-11e8-9e54-db9995643092","type":"permissions","attributes":{"created":"2018-10-31T13:39:27.148615Z","description":"Read + and modify all indexes in your account. This includes the ability to grant + the Logs Read Index Data and Logs Write Exclusion Filters permission to other + roles, for some or all indexes.","display_name":"Logs Modify Indexes","display_type":"write","group_name":"Log + Management","name":"logs_modify_indexes","name_aliases":[],"restricted":false}},{"id":"6f66600e-dd12-11e8-9e55-7f30fbb45e73","type":"permissions","attributes":{"created":"2018-10-31T13:39:48.292879Z","description":"View + the live tail feed for all log indexes, even if otherwise specifically restricted.","display_name":"Logs + Live Tail","display_type":"read","group_name":"Log Management","name":"logs_live_tail","name_aliases":[],"restricted":false}},{"id":"7d7c98ac-dd12-11e8-9e56-93700598622d","type":"permissions","attributes":{"created":"2018-10-31T13:40:11.926613Z","description":"Add + and change exclusion filters for all or some log indexes. Can be granted in + a limited capacity per index to specific roles via the Logs interface or API. + If granted from the Roles interface or API, the permission has global scope.","display_name":"Logs + Write Exclusion Filters","display_type":"write","group_name":"Log Management","name":"logs_write_exclusion_filters","name_aliases":[],"restricted":false}},{"id":"811ac4ca-dd12-11e8-9e57-676a7f0beef9","type":"permissions","attributes":{"created":"2018-10-31T13:40:17.996379Z","description":"Add + and change log pipeline configurations, including the ability to grant the + Logs Write Processors permission to other roles, for some or all pipelines.","display_name":"Logs + Write Pipelines","display_type":"write","group_name":"Log Management","name":"logs_write_pipelines","name_aliases":[],"restricted":false}},{"id":"84aa3ae4-dd12-11e8-9e58-a373a514ccd0","type":"permissions","attributes":{"created":"2018-10-31T13:40:23.969725Z","description":"Add + and change some or all log processor configurations. Can be granted in a limited + capacity per pipeline to specific roles via the Logs interface or API. If + granted via the Roles interface or API the permission has global scope.","display_name":"Logs + Write Processors","display_type":"write","group_name":"Log Management","name":"logs_write_processors","name_aliases":[],"restricted":false}},{"id":"87b00304-dd12-11e8-9e59-cbeb5f71f72f","type":"permissions","attributes":{"created":"2018-10-31T13:40:29.040786Z","description":"Add + and edit Log Archives.","display_name":"Logs Write Archives","display_type":"write","group_name":"Log + Management","name":"logs_write_archives","name_aliases":[],"restricted":false}},{"id":"979df720-aed7-11e9-99c6-a7eb8373165a","type":"permissions","attributes":{"created":"2019-07-25T12:27:39.640758Z","description":"Create + custom metrics from logs.","display_name":"Logs Generate Metrics","display_type":"write","group_name":"Log + Management","name":"logs_generate_metrics","name_aliases":[],"restricted":false}},{"id":"d90f6830-d3d8-11e9-a77a-b3404e5e9ee2","type":"permissions","attributes":{"created":"2019-09-10T14:39:51.955175Z","description":"View + dashboards.","display_name":"Dashboards Read","display_type":"read","group_name":"Dashboards","name":"dashboards_read","name_aliases":[],"restricted":true}},{"id":"d90f6831-d3d8-11e9-a77a-4fd230ddbc6a","type":"permissions","attributes":{"created":"2019-09-10T14:39:51.962944Z","description":"Create + and change dashboards.","display_name":"Dashboards Write","display_type":"write","group_name":"Dashboards","name":"dashboards_write","name_aliases":[],"restricted":false}},{"id":"d90f6832-d3d8-11e9-a77a-bf8a2607f864","type":"permissions","attributes":{"created":"2019-09-10T14:39:51.967094Z","description":"Create, + modify and delete shared dashboards with share type ''Public''. These dashboards + can be accessed by anyone on the internet.","display_name":"Shared Dashboards + Public Write","display_type":"write","group_name":"Dashboards","name":"dashboards_public_share","name_aliases":[],"restricted":false}},{"id":"4441648c-d8b1-11e9-a77a-1b899a04b304","type":"permissions","attributes":{"created":"2019-09-16T18:39:07.744297Z","description":"View + monitors.","display_name":"Monitors Read","display_type":"read","group_name":"Monitors","name":"monitors_read","name_aliases":[],"restricted":true}},{"id":"48ef71ea-d8b1-11e9-a77a-93f408470ad0","type":"permissions","attributes":{"created":"2019-09-16T18:39:15.597109Z","description":"Edit, + delete, and resolve individual monitors.","display_name":"Monitors Write","display_type":"write","group_name":"Monitors","name":"monitors_write","name_aliases":[],"restricted":false}},{"id":"4d87d5f8-d8b1-11e9-a77a-eb9c8350d04f","type":"permissions","attributes":{"created":"2019-09-16T18:39:23.306702Z","description":"Set + downtimes to suppress alerts from any monitor in an organization. Mute and + unmute monitors. The ability to write monitors is not required to set downtimes.","display_name":"Manage + Downtimes","display_type":"write","group_name":"Monitors","name":"monitors_downtime","name_aliases":[],"restricted":false}},{"id":"1af86ce4-7823-11ea-93dc-d7cad1b1c6cb","type":"permissions","attributes":{"created":"2020-04-06T16:24:35.989108Z","description":"Read + log data. In order to read log data, a user must have both this permission + and Logs Read Index Data. This permission can be restricted with restriction + queries. Restrictions are limited to the Log Management product.","display_name":"Logs + Read Data","display_type":"read","group_name":"Log Management","name":"logs_read_data","name_aliases":[],"restricted":false}},{"id":"b382b982-8535-11ea-93de-2bf1bdf20798","type":"permissions","attributes":{"created":"2020-04-23T07:40:27.966133Z","description":"Read + Log Archives location and use it for rehydration.","display_name":"Logs Read + Archives","display_type":"read","group_name":"Log Management","name":"logs_read_archives","name_aliases":[],"restricted":false}},{"id":"7314eb20-aa58-11ea-95e2-6fb6e4a451d5","type":"permissions","attributes":{"created":"2020-06-09T13:52:25.279909Z","description":"Read + Detection Rules.","display_name":"Security Rules Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_rules_read","name_aliases":[],"restricted":false}},{"id":"7b516476-aa58-11ea-95e2-93718cd56369","type":"permissions","attributes":{"created":"2020-06-09T13:52:39.099413Z","description":"Create + and edit Detection Rules.","display_name":"Security Rules Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_rules_write","name_aliases":[],"restricted":false}},{"id":"80de1ec0-aa58-11ea-95e2-aff381626d5d","type":"permissions","attributes":{"created":"2020-06-09T13:52:48.410398Z","description":"View + Security Signals.","display_name":"Security Signals Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_signals_read","name_aliases":[],"restricted":false}},{"id":"58b412cc-ff6d-11eb-bc9c-da7ad0900002","type":"permissions","attributes":{"created":"2021-08-17T15:11:06.963503Z","description":"Modify + Security Signals.","display_name":"Security Signals Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_signals_write","name_aliases":[],"restricted":false}},{"id":"9ac1d8cc-e707-11ea-aa2d-73d37e989a9d","type":"permissions","attributes":{"created":"2020-08-25T19:17:23.539701Z","description":"Invite + other users to your organization.","display_name":"User Access Invite","display_type":"write","group_name":"Access + Management","name":"user_access_invite","name_aliases":[],"restricted":false}},{"id":"9de604d8-e707-11ea-aa2d-93f1a783b3a3","type":"permissions","attributes":{"created":"2020-08-25T19:17:28.810412Z","description":"Disable + users, manage user roles, manage SAML-to-role mappings, and configure logs + restriction queries.","display_name":"User Access Manage","display_type":"write","group_name":"Access + Management","name":"user_access_manage","name_aliases":[],"restricted":false}},{"id":"46a301da-ec5c-11ea-aa9f-73bedeab67ee","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"View + and manage Application Keys owned by the user.","display_name":"User App Keys","display_type":"write","group_name":"API + and Application Keys","name":"user_app_keys","name_aliases":[],"restricted":false}},{"id":"46a301db-ec5c-11ea-aa9f-2fe72193d60e","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"View + Application Keys owned by all users in the organization.","display_name":"Org + App Keys Read","display_type":"read","group_name":"API and Application Keys","name":"org_app_keys_read","name_aliases":[],"restricted":false}},{"id":"46a301dc-ec5c-11ea-aa9f-13b33f8f46ea","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"Manage + Application Keys owned by all users in the organization.","display_name":"Org + App Keys Write","display_type":"write","group_name":"API and Application Keys","name":"org_app_keys_write","name_aliases":[],"restricted":false}},{"id":"46a301dd-ec5c-11ea-aa9f-97edfb345bc9","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"View, + search, and use Synthetics private locations.","display_name":"Synthetics + Private Locations Read","display_type":"read","group_name":"Synthetic Monitoring","name":"synthetics_private_location_read","name_aliases":[],"restricted":false}},{"id":"46a301de-ec5c-11ea-aa9f-a73252c24806","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"Create + and delete private locations in addition to having access to the associated + installation guidelines.","display_name":"Synthetics Private Locations Write","display_type":"write","group_name":"Synthetic + Monitoring","name":"synthetics_private_location_write","name_aliases":[],"restricted":false}},{"id":"46a301df-ec5c-11ea-aa9f-970a9ae645e5","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"View + your organization''s subscription and payment method but not make edits.","display_name":"Billing + Read","display_type":"read","group_name":"Billing and Usage","name":"billing_read","name_aliases":[],"restricted":false}},{"id":"46a301e0-ec5c-11ea-aa9f-6ba6cc675d8c","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"Manage + your organization''s subscription and payment method.","display_name":"Billing + Edit","display_type":"write","group_name":"Billing and Usage","name":"billing_edit","name_aliases":[],"restricted":false}},{"id":"46a301e1-ec5c-11ea-aa9f-afa39f6f3e36","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"View + your organization''s usage and usage attribution.","display_name":"Usage Read","display_type":"read","group_name":"Billing + and Usage","name":"usage_read","name_aliases":[],"restricted":false}},{"id":"46a301e2-ec5c-11ea-aa9f-1f511b7305fd","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"Manage + your organization''s usage attribution set-up.","display_name":"Usage Edit","display_type":"write","group_name":"Billing + and Usage","name":"usage_edit","name_aliases":[],"restricted":false}},{"id":"46a301e4-ec5c-11ea-aa9f-87282b3a50cc","type":"permissions","attributes":{"created":"2020-09-01T14:06:05.444705Z","description":"Edit + and save tag configurations for custom metrics.","display_name":"Metric Tags + Write","display_type":"write","group_name":"Metrics","name":"metric_tags_write","name_aliases":[],"restricted":false}},{"id":"07c3c146-f7f8-11ea-acf6-0bd62b9ae60e","type":"permissions","attributes":{"created":"2020-09-16T08:38:44.242076Z","description":"Rehydrate + logs from Archives.","display_name":"Logs Write Historical Views","display_type":"write","group_name":"Log + Management","name":"logs_write_historical_view","name_aliases":[],"restricted":false}},{"id":"2fbdac76-f923-11ea-adbc-07f3823e2b43","type":"permissions","attributes":{"created":"2020-09-17T20:20:10.834252Z","description":"View + Audit Trail in your organization.","display_name":"Audit Trail Read","display_type":"read","group_name":"Compliance","name":"audit_logs_read","name_aliases":[],"restricted":false}},{"id":"372896c4-f923-11ea-adbc-4fecd107156d","type":"permissions","attributes":{"created":"2020-09-17T20:20:23.279769Z","description":"List + and retrieve the key values of all API Keys in your organization.","display_name":"API + Keys Read","display_type":"read","group_name":"API and Application Keys","name":"api_keys_read","name_aliases":[],"restricted":false}},{"id":"3e4d4d28-f923-11ea-adbc-e3565938c12e","type":"permissions","attributes":{"created":"2020-09-17T20:20:35.26443Z","description":"Create + and rename API Keys for your organization.","display_name":"API Keys Write","display_type":"write","group_name":"API + and Application Keys","name":"api_keys_write","name_aliases":[],"restricted":false}},{"id":"4628ca54-f923-11ea-adbc-4b2b7f88c5e9","type":"permissions","attributes":{"created":"2020-09-17T20:20:48.446916Z","description":"View, + search, and use Synthetics global variables.","display_name":"Synthetics Global + Variable Read","display_type":"read","group_name":"Synthetic Monitoring","name":"synthetics_global_variable_read","name_aliases":[],"restricted":false}},{"id":"4ada6e36-f923-11ea-adbc-0788e5c5e3cf","type":"permissions","attributes":{"created":"2020-09-17T20:20:56.322003Z","description":"Create, + edit, and delete global variables for Synthetics.","display_name":"Synthetics + Global Variable Write","display_type":"write","group_name":"Synthetic Monitoring","name":"synthetics_global_variable_write","name_aliases":[],"restricted":false}},{"id":"5025ee24-f923-11ea-adbc-576ea241df8d","type":"permissions","attributes":{"created":"2020-09-17T20:21:05.205361Z","description":"List + and view configured Synthetic tests and test results.","display_name":"Synthetics + Read","display_type":"read","group_name":"Synthetic Monitoring","name":"synthetics_read","name_aliases":[],"restricted":false}},{"id":"55f4b5ec-f923-11ea-adbc-1bfa2334a755","type":"permissions","attributes":{"created":"2020-09-17T20:21:14.94914Z","description":"Create, + edit, and delete Synthetic tests.","display_name":"Synthetics Write","display_type":"write","group_name":"Synthetic + Monitoring","name":"synthetics_write","name_aliases":[],"restricted":false}},{"id":"5c6b88e2-f923-11ea-adbc-abf57d079420","type":"permissions","attributes":{"created":"2020-09-17T20:21:25.79416Z","description":"View + the default settings for Synthetic Monitoring.","display_name":"Synthetics + Default Settings Read","display_type":"read","group_name":"Synthetic Monitoring","name":"synthetics_default_settings_read","name_aliases":[],"restricted":false}},{"id":"642eebe6-f923-11ea-adbc-eb617674ea04","type":"permissions","attributes":{"created":"2020-09-17T20:21:38.818771Z","description":"Edit + the default settings for Synthetic Monitoring.","display_name":"Synthetics + Default Settings Write","display_type":"write","group_name":"Synthetic Monitoring","name":"synthetics_default_settings_write","name_aliases":[],"restricted":false}},{"id":"6ba32d22-0e1a-11eb-ba44-bf9a5aafaa39","type":"permissions","attributes":{"created":"2020-10-14T12:40:20.271908Z","description":"Create + or edit Log Facets.","display_name":"Logs Write Facets","display_type":"write","group_name":"Log + Management","name":"logs_write_facets","name_aliases":[],"restricted":false}},{"id":"a42e94b2-1476-11eb-bd08-efda28c04248","type":"permissions","attributes":{"created":"2020-10-22T14:55:35.814239Z","description":"Create, + disable, and use Service Accounts in your organization.","display_name":"Service + Account Write","display_type":"write","group_name":"Access Management","name":"service_account_write","name_aliases":[],"restricted":false}},{"id":"fcac2ad8-2843-11eb-8315-0fe47949d625","type":"permissions","attributes":{"created":"2020-11-16T19:43:23.198568Z","description":"Deprecated. + Use the Integrations APIs to configure integrations. In order to configure + integrations from the UI, a user must also have Standard Access.","display_name":"Integrations + API","display_type":"other","group_name":"Integrations","name":"integrations_api","name_aliases":[],"restricted":false}},{"id":"417ba636-2dce-11eb-84c0-6bce5b0d9de0","type":"permissions","attributes":{"created":"2020-11-23T20:55:45.00611Z","description":"Read + and query APM and Trace Analytics.","display_name":"APM Read","display_type":"read","group_name":"APM","name":"apm_read","name_aliases":[],"restricted":true}},{"id":"43fa188e-2dce-11eb-84c0-835ad1fd6287","type":"permissions","attributes":{"created":"2020-11-23T20:55:49.190595Z","description":"Read + trace retention filters. A user with this permission can view the retention + filters page, list of filters, their statistics, and creation info.","display_name":"APM + Retention Filters Read","display_type":"read","group_name":"APM","name":"apm_retention_filter_read","name_aliases":[],"restricted":false}},{"id":"465cfe66-2dce-11eb-84c0-6baa888239fa","type":"permissions","attributes":{"created":"2020-11-23T20:55:53.194236Z","description":"Create, + edit, and delete trace retention filters. A user with this permission can + create new retention filters, and update or delete to existing retention filters.","display_name":"APM + Retention Filters Write","display_type":"write","group_name":"APM","name":"apm_retention_filter_write","name_aliases":[],"restricted":false}},{"id":"4916eebe-2dce-11eb-84c0-271cb2c672e8","type":"permissions","attributes":{"created":"2020-11-23T20:55:57.768261Z","description":"Access + service ingestion pages. A user with this permission can view the service + ingestion page, list of root services, their statistics, and creation info.","display_name":"APM + Service Ingest Read","display_type":"read","group_name":"APM","name":"apm_service_ingest_read","name_aliases":[],"restricted":false}},{"id":"4e3f02b4-2dce-11eb-84c0-2fca946a6efc","type":"permissions","attributes":{"created":"2020-11-23T20:56:06.419518Z","description":"Edit + service ingestion pages'' root services. A user with this permission can edit + the root service ingestion and generate a code snippet to increase ingestion + per service.","display_name":"APM Service Ingest Write","display_type":"write","group_name":"APM","name":"apm_service_ingest_write","name_aliases":[],"restricted":false}},{"id":"53950c54-2dce-11eb-84c0-a79ae108f6f8","type":"permissions","attributes":{"created":"2020-11-23T20:56:15.371926Z","description":"Set + Apdex T value on any service. A user with this permission can set the T value + from the Apdex graph on the service page.","display_name":"APM Apdex Manage + Write","display_type":"write","group_name":"APM","name":"apm_apdex_manage_write","name_aliases":[],"restricted":false}},{"id":"5cbe5f9c-2dce-11eb-84c0-872d3e9f1076","type":"permissions","attributes":{"created":"2020-11-23T20:56:30.742299Z","description":"Edit + second primary tag selection. A user with this permission can modify the second + primary tag dropdown in the APM settings page.","display_name":"APM Tag Management + Write","display_type":"write","group_name":"APM","name":"apm_tag_management_write","name_aliases":[],"restricted":false}},{"id":"61765026-2dce-11eb-84c0-833e230d1b8f","type":"permissions","attributes":{"created":"2020-11-23T20:56:38.658649Z","description":"Edit + the operation name value selection. A user with this permission can modify + the operation name list in the APM settings page and the operation name controller + on the service page.","display_name":"APM Primary Operation Write","display_type":"write","group_name":"APM","name":"apm_primary_operation_write","name_aliases":[],"restricted":false}},{"id":"04bc1cf2-340a-11eb-873a-43b973c760dd","type":"permissions","attributes":{"created":"2020-12-01T19:18:39.866516Z","description":"Configure + Audit Trail in your organization.","display_name":"Audit Trail Write","display_type":"write","group_name":"Compliance","name":"audit_logs_write","name_aliases":[],"restricted":false}},{"id":"8106300a-54f7-11eb-8cbc-7781a434a67b","type":"permissions","attributes":{"created":"2021-01-12T16:59:16.32448Z","description":"Create, + edit, and delete RUM applications. Creating a RUM application automatically + generates a Client Token. In order to create Client Tokens directly, a user + needs the Client Tokens Write permission.","display_name":"RUM Apps Write","display_type":"write","group_name":"Real + User Monitoring","name":"rum_apps_write","name_aliases":[],"restricted":false}},{"id":"edfd5e74-801f-11eb-96d8-da7ad0900002","type":"permissions","attributes":{"created":"2021-03-08T15:06:59.006815Z","description":"Edit + Dynamic Instrumentation configuration. Create or modify Dynamic Instrumentation + probes that do not capture function state.","display_name":"Dynamic Instrumentation + Write","display_type":"write","group_name":"APM","name":"debugger_write","name_aliases":[],"restricted":false}},{"id":"edfd5e75-801f-11eb-96d8-da7ad0900002","type":"permissions","attributes":{"created":"2021-03-08T15:06:59.010517Z","description":"View + Dynamic Instrumentation configuration.","display_name":"Dynamic Instrumentation + Read","display_type":"read","group_name":"APM","name":"debugger_read","name_aliases":[],"restricted":false}},{"id":"bf0dcf7c-90af-11eb-9b82-da7ad0900002","type":"permissions","attributes":{"created":"2021-03-29T16:56:46.394971Z","description":"View + Sensitive Data Scanner configurations and scanning results.","display_name":"Data + Scanner Read","display_type":"read","group_name":"Compliance","name":"data_scanner_read","name_aliases":[],"restricted":false}},{"id":"bf0dcf7d-90af-11eb-9b82-da7ad0900002","type":"permissions","attributes":{"created":"2021-03-29T16:56:46.398584Z","description":"Edit + Sensitive Data Scanner configurations.","display_name":"Data Scanner Write","display_type":"write","group_name":"Compliance","name":"data_scanner_write","name_aliases":[],"restricted":false}},{"id":"7df222b6-a45c-11eb-a0af-da7ad0900002","type":"permissions","attributes":{"created":"2021-04-23T17:51:12.18734Z","description":"Edit + org configurations, including authentication and certain security preferences + such as configuring SAML, renaming an org, configuring allowed login methods, + creating child orgs, subscribing \u0026 unsubscribing from apps in the marketplace, + and enabling \u0026 disabling Remote Configuration for the entire organization.","display_name":"Org + Management","display_type":"write","group_name":"Access Management","name":"org_management","name_aliases":[],"restricted":false}},{"id":"98b984f4-b16d-11eb-a2c6-da7ad0900002","type":"permissions","attributes":{"created":"2021-05-10T08:56:23.676833Z","description":"Read + Security Filters.","display_name":"Security Filters Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_filters_read","name_aliases":[],"restricted":false}},{"id":"98b984f5-b16d-11eb-a2c6-da7ad0900002","type":"permissions","attributes":{"created":"2021-05-10T08:56:23.680551Z","description":"Create, + edit, and delete Security Filters.","display_name":"Security Filters Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_filters_write","name_aliases":[],"restricted":false}},{"id":"12efc20e-d36c-11eb-a9b8-da7ad0900002","type":"permissions","attributes":{"created":"2021-06-22T15:11:09.255499Z","description":"View + incidents in Datadog.","display_name":"Incidents Read","display_type":"read","group_name":"Case + and Incident Management","name":"incident_read","name_aliases":[],"restricted":true}},{"id":"12efc211-d36c-11eb-a9b8-da7ad0900002","type":"permissions","attributes":{"created":"2021-06-22T15:11:09.264369Z","description":"Create, + view, and manage incidents in Datadog.","display_name":"Incidents Write","display_type":"write","group_name":"Case + and Incident Management","name":"incident_write","name_aliases":[],"restricted":false}},{"id":"12efc20f-d36c-11eb-a9b8-da7ad0900002","type":"permissions","attributes":{"created":"2021-06-22T15:11:09.259568Z","description":"View + Incident Settings.","display_name":"Incident Settings Read","display_type":"read","group_name":"Case + and Incident Management","name":"incident_settings_read","name_aliases":[],"restricted":false}},{"id":"12efc210-d36c-11eb-a9b8-da7ad0900002","type":"permissions","attributes":{"created":"2021-06-22T15:11:09.261986Z","description":"Configure + Incident Settings.","display_name":"Incident Settings Write","display_type":"write","group_name":"Case + and Incident Management","name":"incident_settings_write","name_aliases":[],"restricted":false}},{"id":"97971c1c-e895-11eb-b13c-da7ad0900002","type":"permissions","attributes":{"created":"2021-07-19T13:31:15.595771Z","description":"View + Application Security Management Event Rules.","display_name":"Application + Security Management Event Rules Read","display_type":"read","group_name":"Cloud + Security Platform","name":"appsec_event_rule_read","name_aliases":[],"restricted":false}},{"id":"97971c1d-e895-11eb-b13c-da7ad0900002","type":"permissions","attributes":{"created":"2021-07-19T13:31:15.598808Z","description":"Edit + Application Security Management Event Rules.","display_name":"Application + Security Management Event Rules Write","display_type":"write","group_name":"Cloud + Security Platform","name":"appsec_event_rule_write","name_aliases":[],"restricted":false}},{"id":"7605ef24-f376-11eb-b90b-da7ad0900002","type":"permissions","attributes":{"created":"2021-08-02T09:46:07.671535Z","description":"View + RUM Applications data.","display_name":"RUM Apps Read","display_type":"read","group_name":"Real + User Monitoring","name":"rum_apps_read","name_aliases":[],"restricted":true}},{"id":"7605ef25-f376-11eb-b90b-da7ad0900002","type":"permissions","attributes":{"created":"2021-08-02T09:46:07.67464Z","description":"View + Session Replays.","display_name":"RUM Session Replay Read","display_type":"read","group_name":"Real + User Monitoring","name":"rum_session_replay_read","name_aliases":[],"restricted":false}},{"id":"c95412b8-16c7-11ec-85c0-da7ad0900002","type":"permissions","attributes":{"created":"2021-09-16T08:26:27.366789Z","description":"Read + Notification Rules.","display_name":"Security Notification Rules Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_notification_profiles_read","name_aliases":[],"restricted":false}},{"id":"c95412b9-16c7-11ec-85c0-da7ad0900002","type":"permissions","attributes":{"created":"2021-09-16T08:26:27.369359Z","description":"Create, + edit, and delete Notification Rules.","display_name":"Security Notification + Rules Write","display_type":"write","group_name":"Cloud Security Platform","name":"security_monitoring_notification_profiles_write","name_aliases":[],"restricted":false}},{"id":"26c79920-1703-11ec-85d2-da7ad0900002","type":"permissions","attributes":{"created":"2021-09-16T15:31:24.458963Z","description":"Create + custom metrics from spans.","display_name":"APM Generate Metrics","display_type":"write","group_name":"APM","name":"apm_generate_metrics","name_aliases":[],"restricted":false}},{"id":"f4473c60-4792-11ec-a27b-da7ad0900002","type":"permissions","attributes":{"created":"2021-11-17T10:41:43.074031Z","description":"Read + Cloud Workload Security Agent Rules.","display_name":"Cloud Workload Security + Agent Rules Read","display_type":"read","group_name":"Cloud Security Platform","name":"security_monitoring_cws_agent_rules_read","name_aliases":[],"restricted":false}},{"id":"f4473c61-4792-11ec-a27b-da7ad0900002","type":"permissions","attributes":{"created":"2021-11-17T10:41:43.077905Z","description":"Create, + edit, and delete Cloud Workload Security Agent Rules.","display_name":"Cloud + Workload Security Agent Rules Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_cws_agent_rules_write","name_aliases":[],"restricted":false}},{"id":"020a563c-56a4-11ec-a982-da7ad0900002","type":"permissions","attributes":{"created":"2021-12-06T14:51:35.049129Z","description":"Add + and change APM pipeline configurations.","display_name":"APM Pipelines Write","display_type":"write","group_name":"APM","name":"apm_pipelines_write","name_aliases":[],"restricted":false}},{"id":"8e4d6b6e-5750-11ec-a9f4-da7ad0900002","type":"permissions","attributes":{"created":"2021-12-07T11:26:43.807269Z","description":"View + APM pipeline configurations.","display_name":"APM Pipelines Read","display_type":"read","group_name":"APM","name":"apm_pipelines_read","name_aliases":[],"restricted":false}},{"id":"945b3bb4-5884-11ec-aa6d-da7ad0900002","type":"permissions","attributes":{"created":"2021-12-09T00:11:38.956827Z","description":"View + pipelines in your organization.","display_name":"Observability Pipelines Read","display_type":"read","group_name":"Observability + Pipelines","name":"observability_pipelines_read","name_aliases":[],"restricted":false}},{"id":"945b3bb5-5884-11ec-aa6d-da7ad0900002","type":"permissions","attributes":{"created":"2021-12-09T00:11:38.960833Z","description":"Edit + pipelines in your organization.","display_name":"Observability Pipelines Write","display_type":"write","group_name":"Observability + Pipelines","name":"observability_pipelines_write","name_aliases":[],"restricted":false}},{"id":"f6e917a8-8502-11ec-bf20-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-03T15:07:12.058412Z","description":"View + workflows.","display_name":"Workflows Read","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"workflows_read","name_aliases":[],"restricted":false}},{"id":"f6e917aa-8502-11ec-bf20-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-03T15:07:12.061765Z","description":"Create, + edit, and delete workflows.","display_name":"Workflows Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"workflows_write","name_aliases":[],"restricted":false}},{"id":"f6e917a9-8502-11ec-bf20-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-03T15:07:12.060079Z","description":"Run + workflows.","display_name":"Workflows Run","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"workflows_run","name_aliases":[],"restricted":false}},{"id":"f6e917a6-8502-11ec-bf20-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-03T15:07:12.053432Z","description":"List + and view available connections. Connections contain secrets that cannot be + revealed.","display_name":"Connections Read","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"connections_read","name_aliases":[],"restricted":false}},{"id":"f6e917a7-8502-11ec-bf20-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-03T15:07:12.05659Z","description":"Create + and delete connections.","display_name":"Connections Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"connections_write","name_aliases":[],"restricted":false}},{"id":"7a89ec40-8b69-11ec-812d-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-11T18:36:08.531989Z","description":"Access + all private incidents in Datadog, even when not added as a responder.","display_name":"Private + Incidents Global Access","display_type":"read","group_name":"Case and Incident + Management","name":"incidents_private_global_access","name_aliases":[],"restricted":false}},{"id":"b6bf9ac6-9a59-11ec-8480-da7ad0900002","type":"permissions","attributes":{"created":"2022-03-02T18:51:05.04095Z","description":"View + notebooks.","display_name":"Notebooks Read","display_type":"read","group_name":"Notebooks","name":"notebooks_read","name_aliases":[],"restricted":true}},{"id":"b6bf9ac7-9a59-11ec-8480-da7ad0900002","type":"permissions","attributes":{"created":"2022-03-02T18:51:05.044683Z","description":"Create + and change notebooks.","display_name":"Notebooks Write","display_type":"write","group_name":"Notebooks","name":"notebooks_write","name_aliases":[],"restricted":false}},{"id":"e35c06b0-966b-11ec-83c9-da7ad0900002","type":"permissions","attributes":{"created":"2022-02-25T18:51:06.176019Z","description":"Delete + data from your Logs, including entire indexes.","display_name":"Logs Delete + Data","display_type":"write","group_name":"Log Management","name":"logs_delete_data","name_aliases":[],"restricted":false}},{"id":"2108215e-b9b4-11ec-958e-da7ad0900002","type":"permissions","attributes":{"created":"2022-04-11T16:26:24.106645Z","description":"Create + custom metrics from RUM events.","display_name":"RUM Generate Metrics","display_type":"write","group_name":"Real + User Monitoring","name":"rum_generate_metrics","name_aliases":[],"restricted":false}},{"id":"7b1f5086-c59e-11ec-aa32-da7ad0900002","type":"permissions","attributes":{"created":"2022-04-26T20:21:40.278829Z","description":"Add + or remove but not edit AWS integration configurations.","display_name":"AWS + Configurations Manage","display_type":"write","group_name":"Integrations","name":"aws_configurations_manage","name_aliases":[],"restricted":false}},{"id":"7b1f5088-c59e-11ec-aa32-da7ad0900002","type":"permissions","attributes":{"created":"2022-04-26T20:21:40.284056Z","description":"Add + or remove but not edit Azure integration configurations.","display_name":"Azure + Configurations Manage","display_type":"write","group_name":"Integrations","name":"azure_configurations_manage","name_aliases":[],"restricted":false}},{"id":"7b1f5087-c59e-11ec-aa32-da7ad0900002","type":"permissions","attributes":{"created":"2022-04-26T20:21:40.282282Z","description":"Add + or remove but not edit GCP integration configurations.","display_name":"GCP + Configurations Manage","display_type":"write","group_name":"Integrations","name":"gcp_configurations_manage","name_aliases":[],"restricted":false}},{"id":"7b1f5089-c59e-11ec-aa32-da7ad0900002","type":"permissions","attributes":{"created":"2022-04-26T20:21:40.285834Z","description":"Install, + uninstall, and configure integrations.","display_name":"Integrations Manage","display_type":"write","group_name":"Integrations","name":"manage_integrations","name_aliases":[],"restricted":false}},{"id":"1afff448-d5e9-11ec-ae37-da7ad0900002","type":"permissions","attributes":{"created":"2022-05-17T13:56:09.870985Z","description":"Receive + notifications and view currently configured notification settings.","display_name":"Usage + Notifications Read","display_type":"read","group_name":"Billing and Usage","name":"usage_notifications_read","name_aliases":[],"restricted":false}},{"id":"1afff449-d5e9-11ec-ae37-da7ad0900002","type":"permissions","attributes":{"created":"2022-05-17T13:56:09.876124Z","description":"Receive + notifications and configure notification settings.","display_name":"Usage + Notifications Write","display_type":"write","group_name":"Billing and Usage","name":"usage_notifications_write","name_aliases":[],"restricted":false}},{"id":"6c87d3da-e5c5-11ec-b1d6-da7ad0900002","type":"permissions","attributes":{"created":"2022-06-06T18:21:03.378896Z","description":"Schedule + PDF reports from a dashboard.","display_name":"Dashboards Report Write","display_type":"write","group_name":"Dashboards","name":"generate_dashboard_reports","name_aliases":[],"restricted":false}},{"id":"f8e941cf-e746-11ec-b22d-da7ad0900002","type":"permissions","attributes":{"created":"2022-06-08T16:20:55.142591Z","description":"View + SLOs and status corrections.","display_name":"SLOs Read","display_type":"read","group_name":"Service + Level Objectives","name":"slos_read","name_aliases":[],"restricted":true}},{"id":"f8e941d0-e746-11ec-b22d-da7ad0900002","type":"permissions","attributes":{"created":"2022-06-08T16:20:55.143869Z","description":"Create, + edit, and delete SLOs.","display_name":"SLOs Write","display_type":"write","group_name":"Service + Level Objectives","name":"slos_write","name_aliases":[],"restricted":false}},{"id":"f8e941ce-e746-11ec-b22d-da7ad0900002","type":"permissions","attributes":{"created":"2022-06-08T16:20:55.13941Z","description":"Apply, + edit, and delete SLO status corrections. A user with this permission can make + status corrections, even if they do not have permission to edit those SLOs.","display_name":"SLOs + Status Corrections","display_type":"write","group_name":"Service Level Objectives","name":"slos_corrections","name_aliases":[],"restricted":false}},{"id":"4784b11c-f311-11ec-a5f5-da7ad0900002","type":"permissions","attributes":{"created":"2022-06-23T16:26:48.150556Z","description":"Create, + update, and delete monitor configuration policies.","display_name":"Monitor + Configuration Policy Write","display_type":"write","group_name":"Monitors","name":"monitor_config_policy_write","name_aliases":[],"restricted":false}},{"id":"ee68fba9-173a-11ed-b00b-da7ad0900002","type":"permissions","attributes":{"created":"2022-08-08T16:55:39.377188Z","description":"Add, + modify, and delete service catalog definitions when those definitions are + maintained by Datadog.","display_name":"Service Catalog Write","display_type":"write","group_name":"APM","name":"apm_service_catalog_write","name_aliases":[],"restricted":false}},{"id":"ee68fba8-173a-11ed-b00b-da7ad0900002","type":"permissions","attributes":{"created":"2022-08-08T16:55:39.374377Z","description":"View + service catalog and service definitions.","display_name":"Service Catalog + Read","display_type":"read","group_name":"APM","name":"apm_service_catalog_read","name_aliases":[],"restricted":false}},{"id":"5b2c3e28-1761-11ed-b018-da7ad0900002","type":"permissions","attributes":{"created":"2022-08-08T21:30:42.723663Z","description":"Add + and edit forwarding destinations and rules for logs.","display_name":"Logs + Write Forwarding Rules","display_type":"write","group_name":"Log Management","name":"logs_write_forwarding_rules","name_aliases":[],"restricted":false}},{"id":"6be119a6-1cd8-11ed-b185-da7ad0900002","type":"permissions","attributes":{"created":"2022-08-15T20:25:36.677197Z","description":"Deprecated. + Watchdog Insights endpoints are now OPEN.","display_name":"Watchdog Insights + Read","display_type":"read","group_name":"Watchdog","name":"watchdog_insights_read","name_aliases":[],"restricted":false}},{"id":"36e2a22e-248a-11ed-b405-da7ad0900002","type":"permissions","attributes":{"created":"2022-08-25T15:25:56.32517Z","description":"Resolve + connections.","display_name":"Connections Resolve","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"connections_resolve","name_aliases":[],"restricted":false}},{"id":"4ee674f6-55d9-11ed-b10d-da7ad0900002","type":"permissions","attributes":{"created":"2022-10-27T09:25:33.834253Z","description":"View + blocked attackers.","display_name":"Application Security Management Protect + Read","display_type":"read","group_name":"Cloud Security Platform","name":"appsec_protect_read","name_aliases":[],"restricted":false}},{"id":"4ee7e46c-55d9-11ed-b10e-da7ad0900002","type":"permissions","attributes":{"created":"2022-10-27T09:25:33.843656Z","description":"Manage + blocked attackers.","display_name":"Application Security Management Protect + Write","display_type":"write","group_name":"Cloud Security Platform","name":"appsec_protect_write","name_aliases":[],"restricted":false}},{"id":"4ee5731c-55d9-11ed-b10b-da7ad0900002","type":"permissions","attributes":{"created":"2022-10-27T09:25:33.827076Z","description":"View + whether Application Security Management has been enabled or disabled on services + via 1-click enablement with Remote Configuration.","display_name":"Application + Security Management 1-click Enablement Read","display_type":"read","group_name":"Cloud + Security Platform","name":"appsec_activation_read","name_aliases":[],"restricted":false}},{"id":"4ee60688-55d9-11ed-b10c-da7ad0900002","type":"permissions","attributes":{"created":"2022-10-27T09:25:33.831383Z","description":"Enable + or disable Application Security Management on services via 1-click enablement.","display_name":"Application + Security Management 1-click Enablement Write","display_type":"write","group_name":"Cloud + Security Platform","name":"appsec_activation_write","name_aliases":[],"restricted":false}},{"id":"99474cc2-5a12-11ed-b547-da7ad0900002","type":"permissions","attributes":{"created":"2022-11-01T18:25:44.584393Z","description":"View + and run Apps in App Builder.","display_name":"Apps View","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_run","name_aliases":[],"restricted":false}},{"id":"9948271e-5a12-11ed-b548-da7ad0900002","type":"permissions","attributes":{"created":"2022-11-01T18:25:44.590588Z","description":"Create, + edit, publish, and delete Apps in App Builder.","display_name":"Apps Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_write","name_aliases":[],"restricted":false}},{"id":"8247acc4-7a4c-11ed-958f-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-12T18:40:54.018521Z","description":"View + Cases.","display_name":"Cases Read","display_type":"read","group_name":"Case + and Incident Management","name":"cases_read","name_aliases":[],"restricted":false}},{"id":"824851a6-7a4c-11ed-9590-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-12T18:40:54.02328Z","description":"Create + and update cases.","display_name":"Cases Write","display_type":"write","group_name":"Case + and Incident Management","name":"cases_write","name_aliases":[],"restricted":false}},{"id":"77d5f45e-7a5a-11ed-8abf-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-12T20:20:49.450768Z","description":"Edit + APM Remote Configuration.","display_name":"APM Remote Configuration Write","display_type":"write","group_name":"APM","name":"apm_remote_configuration_write","name_aliases":[],"restricted":false}},{"id":"77d55a44-7a5a-11ed-8abe-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-12T20:20:49.446298Z","description":"View + APM Remote Configuration.","display_name":"APM Remote Configuration Read","display_type":"read","group_name":"APM","name":"apm_remote_configuration_read","name_aliases":[],"restricted":false}},{"id":"6c5ad874-7aff-11ed-a5cd-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.149406Z","description":"View + CI Visibility.","display_name":"CI Visibility Read","display_type":"read","group_name":"Software + Delivery","name":"ci_visibility_read","name_aliases":[],"restricted":true}},{"id":"6c5c1090-7aff-11ed-a5cf-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.157428Z","description":"Edit + flaky tests and delete Test Services.","display_name":"CI Visibility Tests + Write","display_type":"write","group_name":"Software Delivery","name":"ci_visibility_write","name_aliases":[],"restricted":false}},{"id":"6c59ae72-7aff-11ed-a5cc-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.141217Z","description":"Edit + CI Provider settings. Manage GitHub accounts and repositories for enabling + CI Visibility and job logs collection.","display_name":"CI Provider Settings + Write","display_type":"write","group_name":"Software Delivery","name":"ci_provider_settings_write","name_aliases":[],"restricted":false}},{"id":"6c5b7428-7aff-11ed-a5ce-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.153418Z","description":"Configure + CI Visibility settings. Set a repository default branch, enable GitHub comments, + and delete test services.","display_name":"CI Visibility Settings Write","display_type":"write","group_name":"Software + Delivery","name":"ci_visibility_settings_write","name_aliases":[],"restricted":false}},{"id":"6c5d0892-7aff-11ed-a5d0-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.163771Z","description":"Deprecated. + Enable or disable Intelligent Test Runner.","display_name":"Intelligent Test + Runner Activation Write","display_type":"write","group_name":"Software Delivery","name":"intelligent_test_runner_activation_write","name_aliases":[],"restricted":false}},{"id":"6c5de654-7aff-11ed-a5d1-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-13T16:01:37.16943Z","description":"Deprecated. + Edit Intelligent Test Runner settings, such as modifying ITR excluded branch + list.","display_name":"Intelligent Test Runner Settings Write","display_type":"write","group_name":"Software + Delivery","name":"intelligent_test_runner_settings_write","name_aliases":[],"restricted":false}},{"id":"c13a2368-7d61-11ed-b5b7-da7ad0900002","type":"permissions","attributes":{"created":"2022-12-16T16:50:32.545882Z","description":"View + data in Continuous Profiler.","display_name":"Continuous Profiler Read","display_type":"read","group_name":"APM","name":"continuous_profiler_read","name_aliases":[],"restricted":false}},{"id":"1d76ecfa-9771-11ed-9c2f-da7ad0900002","type":"permissions","attributes":{"created":"2023-01-18T20:45:59.977837Z","description":"Manage + Teams. Create, delete, rename, and edit metadata of all Teams. To control + Team membership across all Teams, use the User Access Manage permission.","display_name":"Teams + Manage","display_type":"write","group_name":"Teams","name":"teams_manage","name_aliases":[],"restricted":false}},{"id":"ca6bfb3a-b44f-11ed-adb2-da7ad0900002","type":"permissions","attributes":{"created":"2023-02-24T14:30:30.983679Z","description":"View + a list of findings that include both misconfigurations and identity risks.","display_name":"Security + Monitoring Findings Read","display_type":"read","group_name":"Cloud Security + Platform","name":"security_monitoring_findings_read","name_aliases":[],"restricted":false}},{"id":"4dc3eec6-b468-11ed-8539-da7ad0900002","type":"permissions","attributes":{"created":"2023-02-24T17:25:59.263037Z","description":"View + Incidents Notification settings.","display_name":"Incident Notification Settings + Read","display_type":"read","group_name":"Case and Incident Management","name":"incident_notification_settings_read","name_aliases":[],"restricted":false}},{"id":"4dc4094c-b468-11ed-853a-da7ad0900002","type":"permissions","attributes":{"created":"2023-02-24T17:25:59.263037Z","description":"Configure + Incidents Notification settings.","display_name":"Incident Notification Settings + Write","display_type":"write","group_name":"Case and Incident Management","name":"incident_notification_settings_write","name_aliases":[],"restricted":false}},{"id":"35dd33ea-ca2e-11ed-bca0-da7ad0900002","type":"permissions","attributes":{"created":"2023-03-24T10:25:33.934187Z","description":"Edit + CI Ingestion Control exclusion filters.","display_name":"CI Visibility Ingestion + Control Write","display_type":"write","group_name":"Software Delivery","name":"ci_ingestion_control_write","name_aliases":[],"restricted":false}},{"id":"36bf3d0a-ccc0-11ed-9453-da7ad0900002","type":"permissions","attributes":{"created":"2023-03-27T16:55:44.263627Z","description":"Edit + Error Tracking issues.","display_name":"Error Tracking Issue Write","display_type":"write","group_name":"Error + Tracking","name":"error_tracking_write","name_aliases":[],"restricted":false}},{"id":"f416f55e-db3f-11ed-8028-da7ad0900002","type":"permissions","attributes":{"created":"2023-04-15T03:45:24.289668Z","description":"Manage + Watchdog Alerts.","display_name":"Watchdog Alerts Write","display_type":"write","group_name":"Watchdog","name":"watchdog_alerts_write","name_aliases":[],"restricted":false}},{"id":"f416b1ac-db3f-11ed-8027-da7ad0900002","type":"permissions","attributes":{"created":"2023-04-15T03:45:24.289668Z","description":"Modify + Saved Views across all Datadog products.","display_name":"Saved Views Write","display_type":"write","group_name":"Cross-Product + Features","name":"saved_views_write","name_aliases":[],"restricted":false}},{"id":"4e61a95e-de98-11ed-aa23-da7ad0900002","type":"permissions","attributes":{"created":"2023-04-19T09:55:24.976379Z","description":"Read + Client Tokens. Unlike API keys, client tokens may be exposed client-side in + JavaScript code for web browsers and other clients to send data to Datadog.","display_name":"Client + Tokens Read","display_type":"read","group_name":"API and Application Keys","name":"client_tokens_read","name_aliases":[],"restricted":false}},{"id":"4e61ea18-de98-11ed-aa24-da7ad0900002","type":"permissions","attributes":{"created":"2023-04-19T09:55:24.976379Z","description":"Create + and edit Client Tokens. Unlike API keys, client tokens may be exposed client-side + in JavaScript code for web browsers and other clients to send data to Datadog.","display_name":"Client + Tokens Write","display_type":"write","group_name":"API and Application Keys","name":"client_tokens_write","name_aliases":[],"restricted":false}},{"id":"a4316eb8-f438-11ed-8af2-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-16T22:26:02.839419Z","description":"Read + Event Correlation Configuration data such as Correlation Rules and Settings.","display_name":"Event + Correlation Config Read","display_type":"read","group_name":"Events","name":"event_correlation_config_read","name_aliases":[],"restricted":false}},{"id":"a431bf12-f438-11ed-8af3-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-16T22:26:02.839419Z","description":"Manage + Event Correlation Configuration such as Correlation Rules and Settings.","display_name":"Event + Correlation Config Write","display_type":"write","group_name":"Events","name":"event_correlation_config_write","name_aliases":[],"restricted":false}},{"id":"8352cf04-f6ac-11ed-9ec7-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-20T01:20:31.639587Z","description":"Manage + general event configuration such as API Emails.","display_name":"Event Config + Write","display_type":"write","group_name":"Events","name":"event_config_write","name_aliases":[],"restricted":false}},{"id":"3a48350c-f9bc-11ed-b81c-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-23T22:50:34.532448Z","description":"Mute + CSPM Findings.","display_name":"Security Monitoring Findings Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_findings_write","name_aliases":[],"restricted":false}},{"id":"a773e3d8-fff2-11ed-965c-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-31T20:35:17.490437Z","description":"View + Cloud Cost pages and the cloud cost data source in dashboards and notebooks. + For more details, see the Cloud Cost Management docs.","display_name":"Cloud + Cost Management Read","display_type":"read","group_name":"Cloud Cost Management","name":"cloud_cost_management_read","name_aliases":[],"restricted":false}},{"id":"a77452c8-fff2-11ed-965d-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-31T20:35:17.490437Z","description":"Configure + cloud cost accounts and global customizations. For more details, see the Cloud + Cost Management docs.","display_name":"Cloud Cost Management Write","display_type":"write","group_name":"Cloud + Cost Management","name":"cloud_cost_management_write","name_aliases":[],"restricted":false}},{"id":"a51b375a-ff73-11ed-8c18-da7ad0900002","type":"permissions","attributes":{"created":"2023-05-31T05:26:07.469293Z","description":"Add + and change tags on hosts.","display_name":"Host Tags Write","display_type":"write","group_name":"Metrics","name":"host_tags_write","name_aliases":[],"restricted":false}},{"id":"61f9891a-0070-11ee-9c3f-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-01T11:35:17.513706Z","description":"Create + CI Visibility pipeline spans using the API.","display_name":"CI Visibility + Pipelines Write","display_type":"write","group_name":"Software Delivery","name":"ci_visibility_pipelines_write","name_aliases":[],"restricted":false}},{"id":"1377d9e4-0ec7-11ee-aebc-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-19T17:31:08.295856Z","description":"View + PR Gate Rules.","display_name":"PR Gate Rules Read","display_type":"read","group_name":"Software + Delivery","name":"quality_gate_rules_read","name_aliases":[],"restricted":false}},{"id":"1377ff28-0ec7-11ee-aebd-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-19T17:31:08.295856Z","description":"Edit + PR Gate Rules.","display_name":"PR Gate Rules Write","display_type":"write","group_name":"Software + Delivery","name":"quality_gate_rules_write","name_aliases":[],"restricted":false}},{"id":"cc8cd958-11eb-11ee-ade2-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-23T17:31:34.182629Z","description":"Edit + metadata on metrics.","display_name":"Metrics Metadata Write","display_type":"write","group_name":"Metrics","name":"metrics_metadata_write","name_aliases":[],"restricted":false}},{"id":"b1adb6e8-0949-11ee-b2c5-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-12T17:51:01.32545Z","description":"Delete + data from RUM.","display_name":"RUM Delete Data","display_type":"write","group_name":"Real + User Monitoring","name":"rum_delete_data","name_aliases":[],"restricted":false}},{"id":"b1ad77e6-0949-11ee-b2c3-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-12T17:51:01.32545Z","description":"Update + status or assignee of vulnerabilities.","display_name":"Vulnerability Management + Write","display_type":"write","group_name":"Cloud Security Platform","name":"appsec_vm_write","name_aliases":[],"restricted":false}},{"id":"b1adb5da-0949-11ee-b2c4-da7ad0900002","type":"permissions","attributes":{"created":"2023-06-12T17:51:01.32545Z","description":"Create + or modify Reference Tables.","display_name":"Reference Tables Write","display_type":"write","group_name":"Reference + Tables","name":"reference_tables_write","name_aliases":[],"restricted":false}},{"id":"0efeff18-1cec-11ee-992d-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-07T17:31:08.450865Z","description":"Create, + update, and delete RUM playlists. Add and remove sessions from RUM playlists.","display_name":"RUM + Playlist Write","display_type":"write","group_name":"Real User Monitoring","name":"rum_playlist_write","name_aliases":[],"restricted":false}},{"id":"6c5ce898-21a4-11ee-99ef-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-13T17:40:57.140947Z","description":"Delete + pipelines from your organization.","display_name":"Observability Pipelines + Delete","display_type":"write","group_name":"Observability Pipelines","name":"observability_pipelines_delete","name_aliases":[],"restricted":false}},{"id":"6c5ce992-21a4-11ee-99f0-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-13T17:40:57.140947Z","description":"Deploy + pipelines in your organization.","display_name":"Observability Pipelines Deploy","display_type":"write","group_name":"Observability + Pipelines","name":"observability_pipelines_deploy","name_aliases":[],"restricted":false}},{"id":"785177a6-20da-11ee-bed7-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-12T17:35:18.858294Z","description":"Create + custom metrics from processes.","display_name":"Processes Generate Metrics","display_type":"write","group_name":"Processes","name":"processes_generate_metrics","name_aliases":[],"restricted":false}},{"id":"7850e390-20da-11ee-bed6-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-12T17:35:18.858294Z","description":"Delete + API Keys for your organization.","display_name":"API Keys Delete","display_type":"write","group_name":"API + and Application Keys","name":"api_keys_delete","name_aliases":[],"restricted":false}},{"id":"6c5c79b2-21a4-11ee-99ee-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-13T17:40:57.140947Z","description":"Collect + an Agent flare with Fleet Automation.","display_name":"Agent Flare Collection","display_type":"write","group_name":"Fleet + Automation","name":"agent_flare_collection","name_aliases":[],"restricted":false}},{"id":"807a82d8-2724-11ee-84ec-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-20T17:40:22.283891Z","description":"Control + which organizations can query your organization''s data.","display_name":"Org + Connections Write","display_type":"write","group_name":"Access Management","name":"org_connections_write","name_aliases":[],"restricted":false}},{"id":"8079f2e6-2724-11ee-84eb-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-20T17:40:22.283891Z","description":"View + which organizations can query data from your organization. Query data from + other organizations.","display_name":"Org Connections Read","display_type":"read","group_name":"Access + Management","name":"org_connections_read","name_aliases":[],"restricted":false}},{"id":"1b8f54cc-2ca4-11ee-9e72-da7ad0900002","type":"permissions","attributes":{"created":"2023-07-27T17:36:24.369352Z","description":"Manage + facets for products other than Log Management, such as APM Traces. To modify + Log Facets, use Logs Write Facets.","display_name":"Facets Write","display_type":"write","group_name":"Cross-Product + Features","name":"facets_write","name_aliases":[],"restricted":false}},{"id":"de0e73c2-3d23-11ee-aa7d-da7ad0900002","type":"permissions","attributes":{"created":"2023-08-17T17:31:15.369551Z","description":"Read + Rule Suppressions.","display_name":"Security Suppressions Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_suppressions_read","name_aliases":[],"restricted":false}},{"id":"de0eb666-3d23-11ee-aa7e-da7ad0900002","type":"permissions","attributes":{"created":"2023-08-17T17:31:15.369551Z","description":"Write + Rule Suppressions.","display_name":"Security Suppressions Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_suppressions_write","name_aliases":[],"restricted":false}},{"id":"5356dfd2-3dee-11ee-b07b-da7ad0900002","type":"permissions","attributes":{"created":"2023-08-18T17:40:30.474557Z","description":"Edit + Static Analysis settings.","display_name":"Static Analysis Settings Write","display_type":"write","group_name":"Software + Delivery","name":"static_analysis_settings_write","name_aliases":[],"restricted":false}},{"id":"a8b4d6e8-4ea4-11ee-b482-da7ad0900002","type":"permissions","attributes":{"created":"2023-09-09T00:06:00.708335Z","description":"View + CD Visibility.","display_name":"CD Visibility Read","display_type":"read","group_name":"Software + Delivery","name":"cd_visibility_read","name_aliases":[],"restricted":true}},{"id":"263eff86-6925-11ee-acc0-da7ad0900002","type":"permissions","attributes":{"created":"2023-10-12T17:31:17.142666Z","description":"Write + NDM Netflow enrichment mappings.","display_name":"NDM Netflow Enrichments + Write","display_type":"write","group_name":"Network Device Monitoring","name":"ndm_netflow_port_mappings_write","name_aliases":[],"restricted":false}},{"id":"50c270de-69ee-11ee-9151-da7ad0900002","type":"permissions","attributes":{"created":"2023-10-13T17:31:17.311029Z","description":"View + infrastructure, application code and library vulnerabilities. This does not + restrict access to the vulnerability data source through the API or inventory + SQL.","display_name":"Vulnerability Management Read","display_type":"read","group_name":"Cloud + Security Platform","name":"appsec_vm_read","name_aliases":[],"restricted":true}},{"id":"7c7836fc-6f6e-11ee-8cdd-da7ad0900002","type":"permissions","attributes":{"created":"2023-10-20T17:31:22.039614Z","description":"Create + or modify Dynamic Instrumentation probes that capture function state: local + variables, method arguments, fields, and return value or thrown exception.","display_name":"Dynamic + Instrumentation Capture Variables","display_type":"write","group_name":"APM","name":"debugger_capture_variables","name_aliases":[],"restricted":false}},{"id":"10098bc8-984b-11ee-9b69-da7ad0900002","type":"permissions","attributes":{"created":"2023-12-11T17:31:05.405902Z","description":"Disable + Error Tracking, edit inclusion filters, and edit rate limit.","display_name":"Error + Tracking Settings Write","display_type":"write","group_name":"Error Tracking","name":"error_tracking_settings_write","name_aliases":[],"restricted":false}},{"id":"10091e90-984b-11ee-9b68-da7ad0900002","type":"permissions","attributes":{"created":"2023-12-11T17:31:05.405902Z","description":"Add + or change Error Tracking exclusion filters.","display_name":"Error Tracking + Exclusion Filters Write","display_type":"write","group_name":"Error Tracking","name":"error_tracking_exclusion_filters_write","name_aliases":[],"restricted":false}},{"id":"1b572396-ba15-11ee-9e19-da7ad0900002","type":"permissions","attributes":{"created":"2024-01-23T17:30:31.083178Z","description":"View + integrations and their configurations.","display_name":"Integrations Read","display_type":"read","group_name":"Integrations","name":"integrations_read","name_aliases":[],"restricted":false}},{"id":"bdda759a-c1f0-11ee-b428-da7ad0900002","type":"permissions","attributes":{"created":"2024-02-02T17:30:21.655244Z","description":"Add, + modify, and delete API catalog definitions.","display_name":"API Catalog Write","display_type":"write","group_name":"APM","name":"apm_api_catalog_write","name_aliases":[],"restricted":false}},{"id":"bdda0cea-c1f0-11ee-b427-da7ad0900002","type":"permissions","attributes":{"created":"2024-02-02T17:30:21.655244Z","description":"View + API catalog and API definitions.","display_name":"API Catalog Read","display_type":"read","group_name":"APM","name":"apm_api_catalog_read","name_aliases":[],"restricted":false}},{"id":"27b95c32-ccf1-11ee-ae65-da7ad0900002","type":"permissions","attributes":{"created":"2024-02-16T17:31:02.07009Z","description":"Create + or edit trend metrics from container images.","display_name":"Containers Write + Image Trend Metrics","display_type":"write","group_name":"Containers","name":"containers_generate_image_metrics","name_aliases":[],"restricted":false}},{"id":"a82d01ce-e228-11ee-870e-da7ad0900002","type":"permissions","attributes":{"created":"2024-03-14T17:31:14.314721Z","description":"Extend + the retention of Session Replays.","display_name":"RUM Session Replay Extend + Retention","display_type":"write","group_name":"Real User Monitoring","name":"rum_extend_retention","name_aliases":[],"restricted":false}},{"id":"50c173fc-e54d-11ee-bb23-da7ad0900002","type":"permissions","attributes":{"created":"2024-03-18T17:31:12.515412Z","description":"View + and search Private Action Runners for Workflow Automation and App Builder.","display_name":"Private + Action Runner Read","display_type":"read","group_name":"App Builder \u0026 + Workflow Automation","name":"on_prem_runner_read","name_aliases":[],"restricted":false}},{"id":"50c1dd10-e54d-11ee-bb24-da7ad0900002","type":"permissions","attributes":{"created":"2024-03-18T17:31:12.515412Z","description":"Attach + a Private Action Runner to a connection.","display_name":"Private Action Runner + Contribute","display_type":"write","group_name":"App Builder \u0026 Workflow + Automation","name":"on_prem_runner_use","name_aliases":[],"restricted":false}},{"id":"50c1e0b2-e54d-11ee-bb25-da7ad0900002","type":"permissions","attributes":{"created":"2024-03-18T17:31:12.515412Z","description":"Create + and edit Private Action Runners for Workflow Automation and App Builder.","display_name":"Private + Action Runner Write","display_type":"write","group_name":"App Builder \u0026 + Workflow Automation","name":"on_prem_runner_write","name_aliases":[],"restricted":false}},{"id":"ca06b2b4-f5cd-11ee-9e77-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-08T17:31:10.159381Z","description":"Edit + the settings for DORA.","display_name":"DORA Settings Write","display_type":"write","group_name":"Software + Delivery","name":"dora_settings_write","name_aliases":[],"restricted":false}},{"id":"ce892b8a-00ce-11ef-8fca-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-22T17:36:10.012624Z","description":"Upgrade + Datadog Agents with Fleet Automation.","display_name":"Agent Upgrade","display_type":"write","group_name":"Fleet + Automation","name":"agent_upgrade_write","name_aliases":[],"restricted":false}},{"id":"f5f475d4-0197-11ef-be1f-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"Read + and query Continuous Profiler data for Profile-Guided Optimization (PGO).","display_name":"Read + Continuous Profiler Profile-Guided Optimization (PGO) Data","display_type":"read","group_name":"APM","name":"continuous_profiler_pgo_read","name_aliases":[],"restricted":false}},{"id":"f5f4d31c-0197-11ef-be20-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"Add + or remove but not edit Oracle Cloud integration configurations.","display_name":"OCI + Configurations Manage","display_type":"write","group_name":"Integrations","name":"oci_configurations_manage","name_aliases":[],"restricted":false}},{"id":"f5f4e8fc-0197-11ef-be21-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"View + but not add, remove, or edit AWS integration configurations.","display_name":"AWS + Configuration Read","display_type":"read","group_name":"Integrations","name":"aws_configuration_read","name_aliases":[],"restricted":false}},{"id":"f5f4e9a6-0197-11ef-be22-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"View + but not add, remove, or edit Azure integration configurations.","display_name":"Azure + Configuration Read","display_type":"read","group_name":"Integrations","name":"azure_configuration_read","name_aliases":[],"restricted":false}},{"id":"f5f4ec44-0197-11ef-be23-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"View + but not add, remove, or edit GCP integration configurations.","display_name":"GCP + Configuration Read","display_type":"read","group_name":"Integrations","name":"gcp_configuration_read","name_aliases":[],"restricted":false}},{"id":"f5f4f068-0197-11ef-be24-da7ad0900002","type":"permissions","attributes":{"created":"2024-04-23T17:36:04.989467Z","description":"View + but not add, remove, or edit Oracle Cloud integration configurations.","display_name":"OCI + Configuration Read","display_type":"read","group_name":"Integrations","name":"oci_configuration_read","name_aliases":[],"restricted":false}},{"id":"e2310daa-08a9-11ef-8653-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-02T17:32:00.912808Z","description":"Edit + but not add or remove AWS integration configurations.","display_name":"AWS + Configuration Edit","display_type":"write","group_name":"Integrations","name":"aws_configuration_edit","name_aliases":[],"restricted":false}},{"id":"e23194fa-08a9-11ef-8654-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-02T17:32:00.912808Z","description":"Edit + but not add or remove Azure integration configurations.","display_name":"Azure + Configuration Edit","display_type":"write","group_name":"Integrations","name":"azure_configuration_edit","name_aliases":[],"restricted":false}},{"id":"e2319608-08a9-11ef-8655-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-02T17:32:00.912808Z","description":"Edit + but not add or remove GCP integration configurations.","display_name":"GCP + Configuration Edit","display_type":"write","group_name":"Integrations","name":"gcp_configuration_edit","name_aliases":[],"restricted":false}},{"id":"e231ca6a-08a9-11ef-8656-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-02T17:32:00.912808Z","description":"Edit + but not add or remove Oracle Cloud integration configurations.","display_name":"OCI + Configuration Edit","display_type":"write","group_name":"Integrations","name":"oci_configuration_edit","name_aliases":[],"restricted":false}},{"id":"8c3a9cde-0973-11ef-a2be-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-03T17:35:35.030875Z","description":"View + LLM Observability.","display_name":"LLM Observability Read","display_type":"read","group_name":"LLM + Observability","name":"llm_observability_read","name_aliases":[],"restricted":false}},{"id":"cb5a53dc-13aa-11ef-9749-da7ad0900002","type":"permissions","attributes":{"created":"2024-05-16T17:36:14.883078Z","description":"Manage + your organization''s flex logs configuration.","display_name":"Flex Logs Configuration + Write","display_type":"write","group_name":"Log Management","name":"flex_logs_config_write","name_aliases":[],"restricted":false}},{"id":"3cf14194-2298-11ef-9d71-da7ad0900002","type":"permissions","attributes":{"created":"2024-06-04T17:31:12.458506Z","description":"View + Reference Tables.","display_name":"Reference Tables Read","display_type":"read","group_name":"Reference + Tables","name":"reference_tables_read","name_aliases":[],"restricted":false}},{"id":"2757c192-389a-11ef-b37c-da7ad0900002","type":"permissions","attributes":{"created":"2024-07-02T17:40:20.794842Z","description":"Create + and deploy Agent configurations.","display_name":"Agent Configuration Management","display_type":"write","group_name":"Fleet + Automation","name":"fleet_policies_write","name_aliases":[],"restricted":false}},{"id":"27583ae6-389a-11ef-b37d-da7ad0900002","type":"permissions","attributes":{"created":"2024-07-02T17:40:20.794842Z","description":"Enable, + disable and update custom resource indexing.","display_name":"Custom Resource + Definition Write","display_type":"write","group_name":"Orchestration","name":"orchestration_custom_resource_definitions_write","name_aliases":[],"restricted":false}},{"id":"ce67705a-5419-11ef-8c73-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-06T17:32:08.55681Z","description":"View + Code Analysis.","display_name":"Code Analysis Read","display_type":"read","group_name":"Software + Delivery","name":"code_analysis_read","name_aliases":[],"restricted":false}},{"id":"ce67efb2-5419-11ef-8c74-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-06T17:32:08.55681Z","description":"Enable, + disable, and configure workload autoscaling. Apply workload scaling recommendations.","display_name":"Workload + Scaling Write","display_type":"write","group_name":"Orchestration","name":"orchestration_workload_scaling_write","name_aliases":[],"restricted":false}},{"id":"ad8b4c4a-5990-11ef-b34b-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-13T16:25:39.351685Z","description":"Create, + Update, and Delete LLM Observability resources including User Defined Evaluations, + OOTB Evaluations, and User Defined Topics.","display_name":"LLM Observability + Write","display_type":"write","group_name":"LLM Observability","name":"llm_observability_write","name_aliases":[],"restricted":false}},{"id":"5377e20c-6563-11ef-bd11-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-28T17:31:14.83001Z","description":"View + captured events of pipelines in your organization.","display_name":"Observability + Pipelines Live Capture Read","display_type":"read","group_name":"Observability + Pipelines","name":"observability_pipelines_capture_read","name_aliases":[],"restricted":false}},{"id":"53784710-6563-11ef-bd12-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-28T17:31:14.83001Z","description":"Capture + live events of pipelines in your organization.","display_name":"Observability + Pipelines Live Capture Write","display_type":"write","group_name":"Observability + Pipelines","name":"observability_pipelines_capture_write","name_aliases":[],"restricted":false}},{"id":"bf446b0a-60ad-11ef-83c4-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-22T17:41:22.628257Z","description":"Allows + read access to the data within the Actions Datastore.","display_name":"Actions + Datastore Read","display_type":"read","group_name":"App Builder \u0026 Workflow + Automation","name":"apps_datastore_read","name_aliases":[],"restricted":false}},{"id":"bf446e2a-60ad-11ef-83c5-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-22T17:41:22.628257Z","description":"Allows + modification of data within the Actions Datastore, including adding, editing, + and deleting records.","display_name":"Actions Datastore Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_datastore_write","name_aliases":[],"restricted":false}},{"id":"bf4407e6-60ad-11ef-83c3-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-22T17:41:22.628257Z","description":"Allows + management of the Actions Datastore, including creating, updating, and deleting + the datastore itself.","display_name":"Actions Datastore Manage","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_datastore_manage","name_aliases":[],"restricted":false}},{"id":"5dffba8a-66f6-11ef-8976-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-30T17:36:19.679492Z","description":"View + Security Pipelines.","display_name":"Security Pipelines Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_pipelines_read","name_aliases":[],"restricted":false}},{"id":"5e0024fc-66f6-11ef-8977-da7ad0900002","type":"permissions","attributes":{"created":"2024-08-30T17:36:19.679492Z","description":"Create, + edit, and delete Security Pipelines.","display_name":"Security Pipelines Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_pipelines_write","name_aliases":[],"restricted":false}},{"id":"503d01ea-751b-11ef-85ac-da7ad0900002","type":"permissions","attributes":{"created":"2024-09-17T17:36:04.251012Z","description":"Create, + delete and update connection groups.","display_name":"Connection Groups Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"connection_groups_write","name_aliases":[],"restricted":false}},{"id":"479d4934-79e2-11ef-98d5-da7ad0900002","type":"permissions","attributes":{"created":"2024-09-23T19:30:24.281417Z","description":"Allow + quality gates evaluations.","display_name":"Quality Gates Evaluations","display_type":"read","group_name":"Software + Delivery","name":"quality_gates_evaluations_read","name_aliases":[],"restricted":false}},{"id":"bdc2acbe-7c1f-11ef-b362-da7ad0900002","type":"permissions","attributes":{"created":"2024-09-26T15:55:24.124953Z","description":"Read + and use connection groups.","display_name":"Connection Groups Read","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"connection_groups_read","name_aliases":[],"restricted":false}},{"id":"824e509c-7c5c-11ef-ba38-da7ad0900002","type":"permissions","attributes":{"created":"2024-09-26T23:10:23.67733Z","description":"Managing + actions on Cloud Workload Security Agent Rules.","display_name":"Cloud Workload + Security Agent Actions","display_type":"write","group_name":"Cloud Security + Platform","name":"security_monitoring_cws_agent_rules_actions","name_aliases":[],"restricted":false}},{"id":"a91ee0ba-8184-11ef-ac5a-da7ad0900002","type":"permissions","attributes":{"created":"2024-10-03T12:40:24.480611Z","description":"View + RUM Retention filters data.","display_name":"RUM Retention Filters Read","display_type":"read","group_name":"Real + User Monitoring","name":"rum_retention_filters_read","name_aliases":[],"restricted":false}},{"id":"a91f5112-8184-11ef-ac5b-da7ad0900002","type":"permissions","attributes":{"created":"2024-10-03T12:40:24.480611Z","description":"Write + RUM Retention filters.","display_name":"RUM Retention Filters Write","display_type":"write","group_name":"Real + User Monitoring","name":"rum_retention_filters_write","name_aliases":[],"restricted":false}},{"id":"bc3f9ed4-8a3d-11ef-b5a4-da7ad0900002","type":"permissions","attributes":{"created":"2024-10-14T15:05:22.769126Z","description":"View + and use DDSQL Editor.","display_name":"DDSQL Editor Read","display_type":"read","group_name":"DDSQL + Editor","name":"ddsql_editor_read","name_aliases":[],"restricted":false}},{"id":"a8c986a6-989a-11ef-873e-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-01T21:45:49.593207Z","description":"View + the disaster recovery status.","display_name":"Datadog Disaster Recovery Read","display_type":"read","group_name":"Disaster + Recovery","name":"disaster_recovery_status_read","name_aliases":[],"restricted":false}},{"id":"a8ca1fda-989a-11ef-873f-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-01T21:45:49.593207Z","description":"Update + the disaster recovery status.","display_name":"Datadog Disaster Recovery Write","display_type":"write","group_name":"Disaster + Recovery","name":"disaster_recovery_status_write","name_aliases":[],"restricted":false}},{"id":"ebae5be2-9d16-11ef-9394-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-07T14:45:24.068066Z","description":"Write + RUM Settings.","display_name":"RUM Settings Write","display_type":"write","group_name":"Real + User Monitoring","name":"rum_settings_write","name_aliases":[],"restricted":false}},{"id":"ebaf0448-9d16-11ef-9397-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-07T14:45:24.068066Z","description":"View + Test Optimization.","display_name":"Test Optimization Read","display_type":"read","group_name":"Software + Delivery","name":"test_optimization_read","name_aliases":[],"restricted":false}},{"id":"ebaf05ba-9d16-11ef-9398-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-07T14:45:24.068066Z","description":"Manage + flaky tests for Test Optimization.","display_name":"Test Optimization Write","display_type":"write","group_name":"Software + Delivery","name":"test_optimization_write","name_aliases":[],"restricted":false}},{"id":"09e34b76-a6b4-11ef-8ab9-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-19T20:22:46.198145Z","description":"Create, + delete and update Test Optimization settings.","display_name":"Test Optimization + Settings Write","display_type":"write","group_name":"Software Delivery","name":"test_optimization_settings_write","name_aliases":[],"restricted":false}},{"id":"8babfb74-a90e-11ef-b4c3-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-22T20:15:40.970745Z","description":"Write + comments into vulnerabilities.","display_name":"Security Comments Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_comments_write","name_aliases":[],"restricted":false}},{"id":"8baca0ba-a90e-11ef-b4c4-da7ad0900002","type":"permissions","attributes":{"created":"2024-11-22T20:15:40.970745Z","description":"Read + comments of vulnerabilities.","display_name":"Security Comments Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_comments_read","name_aliases":[],"restricted":false}},{"id":"5bc0cdea-b732-11ef-b2f0-da7ad0900002","type":"permissions","attributes":{"created":"2024-12-10T20:07:18.737674Z","description":"Create, + modify and delete shared dashboards with share type ''Invite-only''. These + dashboards can only be accessed by user-specified email addresses.","display_name":"Shared + Dashboards Invite-only Write","display_type":"write","group_name":"Dashboards","name":"dashboards_invite_share","name_aliases":[],"restricted":false}},{"id":"5bc15422-b732-11ef-b2f1-da7ad0900002","type":"permissions","attributes":{"created":"2024-12-10T20:07:18.737674Z","description":"Create, + modify and delete shared dashboards with share type ''Embed''. These dashboards + can be embedded on user-specified domains.","display_name":"Shared Dashboards + Embed Write","display_type":"write","group_name":"Dashboards","name":"dashboards_embed_share","name_aliases":[],"restricted":false}},{"id":"5bc15562-b732-11ef-b2f2-da7ad0900002","type":"permissions","attributes":{"created":"2024-12-10T20:07:18.737674Z","description":"Generate + public links to share embeddable graphs externally.","display_name":"Shared + Graphs Write","display_type":"write","group_name":"Dashboards","name":"embeddable_graphs_share","name_aliases":[],"restricted":false}},{"id":"6595b70a-b7fe-11ef-977d-da7ad0900002","type":"permissions","attributes":{"created":"2024-12-11T20:27:52.565232Z","description":"View + Logs Workspaces.","display_name":"Read Logs Workspaces","display_type":"read","group_name":"Log + Management","name":"logs_read_workspaces","name_aliases":[],"restricted":false}},{"id":"6596753c-b7fe-11ef-977e-da7ad0900002","type":"permissions","attributes":{"created":"2024-12-11T20:27:52.565232Z","description":"Create, + update, and delete Logs Workspaces.","display_name":"Write Logs Workspaces","display_type":"write","group_name":"Log + Management","name":"logs_write_workspaces","name_aliases":[],"restricted":false}},{"id":"bccba216-cd37-11ef-b636-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-07T20:41:14.612376Z","description":"View + Audience Management data.","display_name":"Profiles Read","display_type":"read","group_name":"Product + Analytics","name":"audience_management_read","name_aliases":[],"restricted":false}},{"id":"bccc2ee8-cd37-11ef-b637-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-07T20:41:14.612376Z","description":"Modify + Audience Management data.","display_name":"Profiles Write","display_type":"write","group_name":"Product + Analytics","name":"audience_management_write","name_aliases":[],"restricted":false}},{"id":"8da487f0-d2af-11ef-91c8-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-14T19:41:30.924708Z","description":"Read + logs configuration.","display_name":"Logs Configuration Read","display_type":"read","group_name":"Log + Management","name":"logs_read_config","name_aliases":[],"restricted":false}},{"id":"1c23f168-da90-11ef-910a-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-24T20:16:35.403038Z","description":"View + On-Call teams, schedules, escalation policies and overrides.","display_name":"On-Call + Read","display_type":"read","group_name":"On-Call","name":"on_call_read","name_aliases":[],"restricted":false}},{"id":"1c248fc4-da90-11ef-910b-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-24T20:16:35.403038Z","description":"Create, + update, and delete On-Call teams, schedules and escalation policies.","display_name":"On-Call + Write","display_type":"write","group_name":"On-Call","name":"on_call_write","name_aliases":[],"restricted":false}},{"id":"1c24b292-da90-11ef-910c-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-24T20:16:35.403038Z","description":"Page + On-Call teams and users.","display_name":"On-Call Page","display_type":"write","group_name":"On-Call","name":"on_call_page","name_aliases":[],"restricted":false}},{"id":"c6d32708-df47-11ef-abf3-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-30T20:21:24.316595Z","description":"View + DORA metrics.","display_name":"DORA Metrics Read","display_type":"read","group_name":"Software + Delivery","name":"dora_metrics_read","name_aliases":[],"restricted":false}},{"id":"c6d3a3e0-df47-11ef-abf4-da7ad0900002","type":"permissions","attributes":{"created":"2025-01-30T20:21:24.316595Z","description":"View + Error Tracking data, including stack traces, error messages, and context. + Also includes issue classifications and statuses such as For Review and Reviewed.","display_name":"Error + Tracking Read","display_type":"read","group_name":"Error Tracking","name":"error_tracking_read","name_aliases":[],"restricted":false}},{"id":"66c075bc-e296-11ef-bba7-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-04T01:21:46.862659Z","description":"Acknowledge, + resolve pages and edit overrides. Allow users to configure their On-Call profile.","display_name":"On-Call + Responder","display_type":"write","group_name":"On-Call","name":"on_call_respond","name_aliases":[],"restricted":false}},{"id":"961a20c4-e813-11ef-812f-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-11T01:00:29.208396Z","description":"View + Process Tag Rules.","display_name":"Process Tags Read","display_type":"read","group_name":"Processes","name":"process_tags_read","name_aliases":[],"restricted":false}},{"id":"961a9c48-e813-11ef-8130-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-11T01:00:29.208396Z","description":"Create, + edit and delete Process Tag Rules.","display_name":"Process Tags Write","display_type":"write","group_name":"Processes","name":"process_tags_write","name_aliases":[],"restricted":false}},{"id":"961ab99e-e813-11ef-8131-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-11T01:00:29.208396Z","description":"Read + Cloud Network Connections.","display_name":"Network Connections Read","display_type":"read","group_name":"Cloud + Network Monitoring","name":"network_connections_read","name_aliases":[],"restricted":false}},{"id":"8b6adbea-e8c8-11ef-9955-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-11T22:35:50.190498Z","description":"View + remote instrumentation configuration for serverless workloads.","display_name":"Serverless + AWS Instrumentation Read","display_type":"read","group_name":"Serverless","name":"serverless_aws_instrumentation_read","name_aliases":[],"restricted":false}},{"id":"8b6b780c-e8c8-11ef-9956-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-11T22:35:50.190498Z","description":"Add, + update, and remove remote instrumentation configuration for serverless workloads.","display_name":"Serverless + AWS Instrumentation Write","display_type":"write","group_name":"Serverless","name":"serverless_aws_instrumentation_write","name_aliases":[],"restricted":false}},{"id":"a2862964-f611-11ef-850c-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-28T20:21:47.334489Z","description":"Write + terminal recordings.","display_name":"CoTerm Write","display_type":"write","group_name":"CoTerm","name":"coterm_write","name_aliases":[],"restricted":false}},{"id":"a2869476-f611-11ef-850d-da7ad0900002","type":"permissions","attributes":{"created":"2025-02-28T20:21:47.334489Z","description":"Read + terminal recordings.","display_name":"CoTerm Read","display_type":"read","group_name":"CoTerm","name":"coterm_read","name_aliases":[],"restricted":false}},{"id":"fb232b90-fb79-11ef-82a0-da7ad0900002","type":"permissions","attributes":{"created":"2025-03-07T17:31:19.476819Z","description":"Capture + messages from Kafka topics in the Data Streams Monitoring product.","display_name":"Data + Streams Monitoring Kafka Consume","display_type":"write","group_name":"Data + Streams Monitoring","name":"data_streams_monitoring_capture_messages","name_aliases":[],"restricted":false}},{"id":"722ecc08-036d-11f0-8484-da7ad0900002","type":"permissions","attributes":{"created":"2025-03-17T20:21:45.04654Z","description":"View + infrastructure diagrams in the Cloudcraft product.","display_name":"Cloudcraft + Read","display_type":"read","group_name":"Infrastructure","name":"cloudcraft_read","name_aliases":[],"restricted":false}},{"id":"1d993a28-0ff9-11f0-9d18-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-02T19:31:46.633199Z","description":"View + NDM device profiles.","display_name":"NDM Device Profiles View","display_type":"read","group_name":"Network + Device Monitoring","name":"ndm_device_profiles_view","name_aliases":[],"restricted":false}},{"id":"1d99b426-0ff9-11f0-9d19-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-02T19:31:46.633199Z","description":"Edit + NDM device profiles.","display_name":"NDM Device Profiles Edit","display_type":"write","group_name":"Network + Device Monitoring","name":"ndm_device_profiles_edit","name_aliases":[],"restricted":false}},{"id":"cdfb1760-118e-11f0-bc0c-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-04T19:55:48.729049Z","description":"Schedule + CSV reports. View CSV report schedules created by other users.","display_name":"CSV + Report Schedules Write","display_type":"write","group_name":"Cross-Product + Features","name":"generate_log_reports","name_aliases":[],"restricted":false}},{"id":"cdfb9f64-118e-11f0-bc0d-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-04T19:55:48.729049Z","description":"Edit + CSV report schedules created by other users.","display_name":"CSV Report Schedules + Manage","display_type":"write","group_name":"Cross-Product Features","name":"manage_log_reports","name_aliases":[],"restricted":false}},{"id":"9c6b2fd2-2160-11f0-a4bc-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-24T23:05:27.332459Z","description":"Read + NDM data directly. Note: even without this permission, NDM data can be retrieved + via general infrastructure query APIs.","display_name":"NDM Read","display_type":"read","group_name":"Network + Device Monitoring","name":"ndm_devices_read","name_aliases":[],"restricted":false}},{"id":"9c6bdd74-2160-11f0-a4bd-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-24T23:05:27.332459Z","description":"Write + NDM device tags.","display_name":"NDM Device Tags Write","display_type":"write","group_name":"Network + Device Monitoring","name":"ndm_device_tags_write","name_aliases":[],"restricted":false}},{"id":"9c6bfe80-2160-11f0-a4be-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-24T23:05:27.332459Z","description":"Deprecated. + View workload autoscaling objects and recommendations. Note: This permission + is in Preview Mode and will be enforced soon.","display_name":"Workload Scaling + Read (Preview)","display_type":"read","group_name":"Orchestration","name":"orchestration_workload_scaling_read","name_aliases":[],"restricted":false}},{"id":"9727b526-2530-11f0-aa8f-da7ad0900002","type":"permissions","attributes":{"created":"2025-04-29T19:31:47.309632Z","description":"Read + Bits investigations.","display_name":"Bits Investigations Read","display_type":"read","group_name":"Bits + AI","name":"bits_investigations_read","name_aliases":[],"restricted":false}},{"id":"3c4eb438-2693-11f0-8a2e-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-01T13:50:26.23164Z","description":"View + Sheets.","display_name":"Sheets Read","display_type":"read","group_name":"Sheets","name":"sheets_read","name_aliases":[],"restricted":false}},{"id":"3c4f1a0e-2693-11f0-8a2f-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-01T13:50:26.23164Z","description":"Create + and change Sheets.","display_name":"Sheets Write","display_type":"write","group_name":"Sheets","name":"sheets_write","name_aliases":[],"restricted":false}},{"id":"bd4af1cc-29e6-11f0-b6ed-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-05T19:25:44.343599Z","description":"View + pages and settings in Status Pages.","display_name":"Status Pages Settings + Read","display_type":"read","group_name":"Status Pages","name":"status_pages_settings_read","name_aliases":[],"restricted":false}},{"id":"bd4afd16-29e6-11f0-b6ee-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-05T19:25:44.343599Z","description":"Configure + page settings in Status Pages.","display_name":"Status Pages Settings Write","display_type":"write","group_name":"Status + Pages","name":"status_pages_settings_write","name_aliases":[],"restricted":false}},{"id":"bd4afe92-29e6-11f0-b6ef-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-05T19:25:44.343599Z","description":"Publish + notices in Status Pages.","display_name":"Status Pages Notice Write","display_type":"write","group_name":"Status + Pages","name":"status_pages_incident_write","name_aliases":[],"restricted":false}},{"id":"b5c5b3e0-30fa-11f0-8a0d-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-14T19:36:19.806713Z","description":"Manage + sensitive and advanced On-Call settings.","display_name":"On-Call Admin","display_type":"write","group_name":"On-Call","name":"on_call_admin","name_aliases":[],"restricted":false}},{"id":"37236de4-34eb-11f0-9f9b-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-19T19:55:29.550539Z","description":"Manage + autoscaling cluster level configuration.","display_name":"Autoscaling Manage","display_type":"write","group_name":"Orchestration","name":"orchestration_autoscaling_manage","name_aliases":[],"restricted":false}},{"id":"e540c5c8-3a65-11f0-8690-da7ad0900002","type":"permissions","attributes":{"created":"2025-05-26T19:16:16.081234Z","description":"View + Code Coverage data.","display_name":"Code Coverage read","display_type":"read","group_name":"Software + Delivery","name":"code_coverage_read","name_aliases":[],"restricted":false}},{"id":"80f0e58e-4bb4-11f0-af97-da7ad0900002","type":"permissions","attributes":{"created":"2025-06-17T19:51:47.794574Z","description":"Configure + shared settings for Case Management.","display_name":"Case Management Shared + Settings Write","display_type":"write","group_name":"Case and Incident Management","name":"cases_shared_settings_write","name_aliases":[],"restricted":false}},{"id":"531cb514-4e13-11f0-917d-da7ad0900002","type":"permissions","attributes":{"created":"2025-06-20T20:15:35.421308Z","description":"View + data from Git repositories. Note: This permission is in Preview Mode and will + be enforced soon.","display_name":"Repository Info Read (Preview)","display_type":"read","group_name":"Integrations","name":"repo_info_read","name_aliases":[],"restricted":false}},{"id":"531cb848-4e13-11f0-917e-da7ad0900002","type":"permissions","attributes":{"created":"2025-06-20T20:15:35.421308Z","description":"Edit + Git repositories settings. Note: This permission is in Preview Mode and will + be enforced soon.","display_name":"Repository Settings Write (Preview)","display_type":"write","group_name":"Integrations","name":"repo_settings_write","name_aliases":[],"restricted":false}},{"id":"8f92d602-5086-11f0-b4dd-da7ad0900002","type":"permissions","attributes":{"created":"2025-06-23T23:05:31.308206Z","description":"Edit + Product Analytics application configuration, including enabling and disabling. + Enabling or disabling also requires RumAppsWrite permission.","display_name":"Product + Analytics Apps Write","display_type":"write","group_name":"Product Analytics","name":"product_analytics_apps_write","name_aliases":[],"restricted":false}},{"id":"05a700c8-568d-11f0-a121-da7ad0900002","type":"permissions","attributes":{"created":"2025-07-01T15:06:53.368648Z","description":"Execute + actions in the Bits AI Action Interface.","display_name":"Actions Interface + Run","display_type":"write","group_name":"App Builder \u0026 Workflow Automation","name":"actions_interface_run","name_aliases":[],"restricted":false}},{"id":"3a7d4b62-5cfb-11f0-b5fb-da7ad0900002","type":"permissions","attributes":{"created":"2025-07-09T19:30:53.631442Z","description":"Evaluate + AI Guard rules.","display_name":"AI Guard Evaluate","display_type":"write","group_name":"Application + Security","name":"ai_guard_evaluate","name_aliases":[],"restricted":false}},{"id":"b7d5c544-5dc8-11f0-94bb-da7ad0900002","type":"permissions","attributes":{"created":"2025-07-10T20:01:50.756018Z","description":"View + all report schedules and manage only the ones they''ve created.","display_name":"Cloud + Cost Report Schedules Write","display_type":"write","group_name":"Cloud Cost + Management","name":"generate_ccm_report_schedules","name_aliases":[],"restricted":false}},{"id":"b7d660bc-5dc8-11f0-94bc-da7ad0900002","type":"permissions","attributes":{"created":"2025-07-10T20:01:50.756018Z","description":"View, + create, and fully manage all report schedules across the organization.","display_name":"Cloud + Cost Report Schedules Manage","display_type":"write","group_name":"Cloud Cost + Management","name":"manage_ccm_report_schedules","name_aliases":[],"restricted":false}},{"id":"8c2cd864-716f-11f0-9eb9-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-04T20:13:55.553519Z","description":"View + the Governance Console.","display_name":"Governance Console Read","display_type":"read","group_name":"Access + Management","name":"governance_console_read","name_aliases":[],"restricted":false}},{"id":"0b32e638-7a0f-11f0-bc08-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-15T19:35:47.946146Z","description":"Unmask + (view) sensitive data that was previouly masked.","display_name":"Data Scanner + Unmask","display_type":"read","group_name":"Compliance","name":"data_scanner_unmask","name_aliases":[],"restricted":false}},{"id":"34724c9c-7c6b-11f0-a2d4-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-18T19:40:33.172743Z","description":"View + and respond to Forms.","display_name":"Forms Read","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_form_read","name_aliases":[],"restricted":false}},{"id":"3472ea30-7c6b-11f0-a2d5-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-18T19:40:33.172743Z","description":"Create, + update, and manage Forms.","display_name":"Forms Manage","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"apps_form_manage","name_aliases":[],"restricted":false}},{"id":"fef64526-7dfc-11f0-a6c0-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-20T19:36:41.126093Z","description":"Edit + DORA metrics.","display_name":"DORA Metrics Write","display_type":"write","group_name":"Software + Delivery","name":"dora_metrics_write","name_aliases":[],"restricted":false}},{"id":"e285c44a-8381-11f0-93b6-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-27T20:10:32.291487Z","description":"Run + and configure Bits investigations.","display_name":"Bits Investigations Write","display_type":"write","group_name":"Bits + AI","name":"bits_investigations_write","name_aliases":[],"restricted":false}},{"id":"93678f08-8447-11f0-92ea-da7ad0900002","type":"permissions","attributes":{"created":"2025-08-28T19:45:39.906008Z","description":"Edit + Dynamic Instrumentation configuration. Create or Modify Dynamic Instrumentation + probes targeted at pre-prod environments.","display_name":"Dynamic Instrumentation + Write Pre-Prod","display_type":"write","group_name":"APM","name":"debugger_write_pre_prod","name_aliases":[],"restricted":false}},{"id":"3cb44eda-8db6-11f0-a663-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-09T19:50:29.049127Z","description":"Read + Network Health Insights.","display_name":"Network Health Insights Read","display_type":"read","group_name":"Cloud + Network Monitoring","name":"network_health_insights_read","name_aliases":[],"restricted":false}},{"id":"3cb4e7e6-8db6-11f0-a664-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-09T19:50:29.049127Z","description":"Read + Detection Datasets.","display_name":"Security Dataset Read","display_type":"read","group_name":"Cloud + Security Platform","name":"security_monitoring_datasets_read","name_aliases":[],"restricted":false}},{"id":"3cb4eba6-8db6-11f0-a665-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-09T19:50:29.049127Z","description":"Create + and edit Detection Datasets.","display_name":"Security Dataset Write","display_type":"write","group_name":"Cloud + Security Platform","name":"security_monitoring_datasets_write","name_aliases":[],"restricted":false}},{"id":"6fbe365a-8e7f-11f0-be57-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-10T19:50:43.520414Z","description":"Edit + Feature Flag Configurations.","display_name":"Feature Flag Write","display_type":"write","group_name":"Feature + Flags","name":"feature_flag_config_write","name_aliases":[],"restricted":false}},{"id":"6fbec2f0-8e7f-11f0-be58-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-10T19:50:43.520414Z","description":"View + Feature Flag Configurations.","display_name":"Feature Flag Read","display_type":"read","group_name":"Feature + Flags","name":"feature_flag_config_read","name_aliases":[],"restricted":false}},{"id":"6fbeee92-8e7f-11f0-be59-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-10T19:50:43.520414Z","description":"Ability + to modify Feature Flag Environment settings.","display_name":"Feature Flag + Environment Write","display_type":"write","group_name":"Feature Flags","name":"feature_flag_environment_config_write","name_aliases":[],"restricted":false}},{"id":"6fbeef64-8e7f-11f0-be5a-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-10T19:50:43.520414Z","description":"Ability + to view Feature Flag Environment settings.","display_name":"Feature Flag Environment + Read","display_type":"read","group_name":"Feature Flags","name":"feature_flag_environment_config_read","name_aliases":[],"restricted":false}},{"id":"3ccb51b0-8f47-11f0-81a8-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-11T19:40:57.388587Z","description":"Ability + to access the Datadog Assistant.","display_name":"Assistant Access","display_type":"read","group_name":"Assistant","name":"assistant_access","name_aliases":[],"restricted":false}},{"id":"92b11e72-9012-11f0-9b95-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-12T19:56:29.336995Z","description":"View + Database Monitoring data.","display_name":"Database Monitoring Read","display_type":"read","group_name":"Database + Monitoring","name":"dbm_read","name_aliases":[],"restricted":false}},{"id":"92b1b044-9012-11f0-9b96-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-12T19:56:29.336995Z","description":"Write + NDM Geomap locations.","display_name":"NDM Geomap Locations Write","display_type":"write","group_name":"Network + Device Monitoring","name":"ndm_geomap_locations_write","name_aliases":[],"restricted":false}},{"id":"5d91ca96-9a46-11f0-9f77-da7ad0900002","type":"permissions","attributes":{"created":"2025-09-25T19:32:25.670181Z","description":"Read + NDM device configurations.","display_name":"NDM Device Config Read","display_type":"read","group_name":"Network + Device Monitoring","name":"ndm_device_config_read","name_aliases":[],"restricted":false}},{"id":"942678c0-a867-11f0-9fda-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-13T19:05:26.912391Z","description":"View + Parameterized SQL Queries in Database Monitoring.","display_name":"Database + Monitoring Parameterized Queries Read","display_type":"read","group_name":"Database + Monitoring","name":"dbm_parameterized_queries_read","name_aliases":[],"restricted":false}},{"id":"cccaeb6e-a54e-11f0-aeb1-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-09T20:30:31.031716Z","description":"Edit + service renaming. A user with this permission can modify service renaming + rules.","display_name":"APM Service Renaming Write","display_type":"write","group_name":"APM","name":"apm_service_renaming_write","name_aliases":[],"restricted":false}},{"id":"94271dfc-a867-11f0-9fdb-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-13T19:05:26.912391Z","description":"View + Deployment Gates.","display_name":"Deployment Gates Read","display_type":"read","group_name":"Software + Delivery","name":"deployment_gates_read","name_aliases":[],"restricted":false}},{"id":"94271f82-a867-11f0-9fdc-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-13T19:05:26.912391Z","description":"Edit + Deployment Gates configuration. Create or update Deployment Gates or Rules.","display_name":"Deployment + Gates Write","display_type":"write","group_name":"Software Delivery","name":"deployment_gates_write","name_aliases":[],"restricted":false}},{"id":"94274804-a867-11f0-9fdd-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-13T19:05:26.912391Z","description":"Evaluate + Deployment Gates.","display_name":"Deployment Gates Evaluate","display_type":"write","group_name":"Software + Delivery","name":"deployment_gates_evaluate","name_aliases":[],"restricted":false}},{"id":"12d2d5f6-af7a-11f0-8e1f-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-22T19:05:28.511295Z","description":"View + saved Product Analytics charts.","display_name":"Product Analytics Saved Charts + Read","display_type":"read","group_name":"Product Analytics","name":"product_analytics_saved_widgets_read","name_aliases":[],"restricted":false}},{"id":"12d2defc-af7a-11f0-8e20-da7ad0900002","type":"permissions","attributes":{"created":"2025-10-22T19:05:28.511295Z","description":"Create, + edit, and delete saved Product Analytics charts.","display_name":"Product + Analytics Saved Charts Write","display_type":"write","group_name":"Product + Analytics","name":"product_analytics_saved_widgets_write","name_aliases":[],"restricted":false}},{"id":"42f0457e-c57e-11f0-aeec-da7ad0900002","type":"permissions","attributes":{"created":"2025-11-19T19:30:52.807174Z","description":"Write + data via the MCP server.","display_name":"MCP Write","display_type":"write","group_name":"MCP","name":"mcp_write","name_aliases":[],"restricted":false}},{"id":"42f0ed12-c57e-11f0-aeed-da7ad0900002","type":"permissions","attributes":{"created":"2025-11-19T19:30:52.807174Z","description":"Read + data via the MCP server.","display_name":"MCP Read","display_type":"read","group_name":"MCP","name":"mcp_read","name_aliases":[],"restricted":false}},{"id":"e2bc0cfa-d9fb-11f0-830b-da7ad0900002","type":"permissions","attributes":{"created":"2025-12-15T21:20:31.247015Z","description":"View + notification rules for External Provider Status.","display_name":"External + Provider Status Notifications Read","display_type":"read","group_name":"Watchdog","name":"external_provider_status_notifications_read","name_aliases":[],"restricted":false}},{"id":"e2bcbfba-d9fb-11f0-830c-da7ad0900002","type":"permissions","attributes":{"created":"2025-12-15T21:20:31.247015Z","description":"Create + and modify notification rules for External Provider Status.","display_name":"External + Provider Status Notifications Write","display_type":"write","group_name":"Watchdog","name":"external_provider_status_notifications_write","name_aliases":[],"restricted":false}},{"id":"559980f6-ca55-11f0-8040-da7ad0900002","type":"permissions","attributes":{"created":"2025-11-25T23:20:30.56322Z","description":"Enforce + Governance controls via the Governance Console.","display_name":"Governance + Console Write","display_type":"write","group_name":"Access Management","name":"governance_console_write","name_aliases":[],"restricted":false}},{"id":"e2bce80a-d9fb-11f0-830d-da7ad0900002","type":"permissions","attributes":{"created":"2025-12-15T21:20:31.247015Z","description":"Run + Bits AI security investigations. Note: This permission is in Preview Mode + and will be enforced soon.","display_name":"Bits AI Security Analyst Investigations + Write (Preview)","display_type":"write","group_name":"Cloud Security Platform","name":"bits_security_analyst_write","name_aliases":[],"restricted":false}},{"id":"e2bcf0ac-d9fb-11f0-830e-da7ad0900002","type":"permissions","attributes":{"created":"2025-12-15T21:20:31.247015Z","description":"Edit + Bits AI Security Analyst settings. Note: This permission is in Preview Mode + and will be enforced soon.","display_name":"Bits AI Security Analyst Config + Write (Preview)","display_type":"write","group_name":"Cloud Security Platform","name":"bits_security_analyst_config_write","name_aliases":[],"restricted":false}},{"id":"650d4174-ea6e-11f0-bbcc-da7ad0900002","type":"permissions","attributes":{"created":"2026-01-05T19:40:31.114771Z","description":"View + Resource Policies under infrastructure products.","display_name":"Infrastructure + Resource Policies Read","display_type":"read","group_name":"Infrastructure","name":"infrastructure_resource_policies_read","name_aliases":[],"restricted":false}},{"id":"650e0028-ea6e-11f0-bbcd-da7ad0900002","type":"permissions","attributes":{"created":"2026-01-05T19:40:31.114771Z","description":"Create, + edit, and delete Resource Policies under infrastructure products.","display_name":"Infrastructure + Resource Policies Write","display_type":"write","group_name":"Infrastructure","name":"infrastructure_resource_policies_write","name_aliases":[],"restricted":false}},{"id":"8e2764d8-f246-11f0-a91e-da7ad0900002","type":"permissions","attributes":{"created":"2026-01-15T19:15:29.505667Z","description":"View + Agents in AgentBuilder.","display_name":"Agent Builder Read","display_type":"read","group_name":"App + Builder \u0026 Workflow Automation","name":"agent_builder_read","name_aliases":[],"restricted":false}},{"id":"8e281d1a-f246-11f0-a91f-da7ad0900002","type":"permissions","attributes":{"created":"2026-01-15T19:15:29.505667Z","description":"Create, + edit, and delete Agents in AgentBuilder.","display_name":"Agent Builder Write","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"agent_builder_write","name_aliases":[],"restricted":false}},{"id":"8e281e5a-f246-11f0-a920-da7ad0900002","type":"permissions","attributes":{"created":"2026-01-15T19:15:29.505667Z","description":"Run + agents in AgentBuilder.","display_name":"Agent Builder Run","display_type":"write","group_name":"App + Builder \u0026 Workflow Automation","name":"agent_builder_run","name_aliases":[],"restricted":false}}]}' headers: Content-Type: - - application/json + - application/vnd.api+json status: code: 200 message: OK diff --git a/features/v2/roles.feature b/features/v2/roles.feature index 48d61dae9ce2..baea2e1cd1b9 100644 --- a/features/v2/roles.feature +++ b/features/v2/roles.feature @@ -217,6 +217,7 @@ Feature: Roles And the response "data" has item with field "attributes.restricted" with value true And the response "data" has item with field "attributes.restricted" with value false And the response "data" has item with field "attributes.name" with value "admin" + And the response "data" has item with field "attributes.name_aliases" with value [] @generated @skip @team:DataDog/aaa-core-access Scenario: List role templates returns "OK" response diff --git a/lib/datadog_api_client/v2/models/permission_attributes.rb b/lib/datadog_api_client/v2/models/permission_attributes.rb index 9ee63b1397ab..d385750696b0 100644 --- a/lib/datadog_api_client/v2/models/permission_attributes.rb +++ b/lib/datadog_api_client/v2/models/permission_attributes.rb @@ -39,6 +39,9 @@ class PermissionAttributes # Name of the permission. attr_accessor :name + # List of alias names for the permission. + attr_accessor :name_aliases + # Whether or not the permission is restricted. attr_accessor :restricted @@ -54,6 +57,7 @@ def self.attribute_map :'display_type' => :'display_type', :'group_name' => :'group_name', :'name' => :'name', + :'name_aliases' => :'name_aliases', :'restricted' => :'restricted' } end @@ -68,6 +72,7 @@ def self.openapi_types :'display_type' => :'String', :'group_name' => :'String', :'name' => :'String', + :'name_aliases' => :'Array', :'restricted' => :'Boolean' } end @@ -114,6 +119,12 @@ def initialize(attributes = {}) self.name = attributes[:'name'] end + if attributes.key?(:'name_aliases') + if (value = attributes[:'name_aliases']).is_a?(Array) + self.name_aliases = value + end + end + if attributes.key?(:'restricted') self.restricted = attributes[:'restricted'] end @@ -151,6 +162,7 @@ def ==(o) display_type == o.display_type && group_name == o.group_name && name == o.name && + name_aliases == o.name_aliases && restricted == o.restricted && additional_properties == o.additional_properties end @@ -159,7 +171,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [created, description, display_name, display_type, group_name, name, restricted, additional_properties].hash + [created, description, display_name, display_type, group_name, name, name_aliases, restricted, additional_properties].hash end end end From 05ad14a61440d6bfbf6c0f38e778352a01199c0a Mon Sep 17 00:00:00 2001 From: "api-clients-generation-pipeline[bot]" <54105614+api-clients-generation-pipeline[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 21:14:25 +0000 Subject: [PATCH 2/2] Add Batch Rows Query Endpoint to Reference Tables API spec (#3119) Co-authored-by: ci.datadog-api-spec --- .generator/schemas/v2/openapi.yaml | 141 ++++++++++++++++- .../v2/reference-tables/BatchRowsQuery.rb | 19 +++ examples/v2/reference-tables/DeleteRows.rb | 2 +- features/scenarios_model_mapping.rb | 3 + features/v2/reference_tables.feature | 21 +++ features/v2/undo.json | 6 + lib/datadog_api_client/inflector.rb | 10 +- .../v2/api/reference_tables_api.rb | 67 ++++++++ .../models/batch_delete_rows_request_array.rb | 2 +- .../v2/models/batch_rows_query_data_type.rb | 26 ++++ .../v2/models/batch_rows_query_request.rb | 105 +++++++++++++ .../models/batch_rows_query_request_data.rb | 133 ++++++++++++++++ ...atch_rows_query_request_data_attributes.rb | 146 ++++++++++++++++++ .../v2/models/batch_rows_query_response.rb | 105 +++++++++++++ .../models/batch_rows_query_response_data.rb | 143 +++++++++++++++++ ..._rows_query_response_data_relationships.rb | 105 +++++++++++++ ..._query_response_data_relationships_rows.rb | 107 +++++++++++++ ...ta.rb => table_row_resource_identifier.rb} | 6 +- 18 files changed, 1135 insertions(+), 12 deletions(-) create mode 100644 examples/v2/reference-tables/BatchRowsQuery.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_data_type.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_request.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_request_data.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_request_data_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_response.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_response_data.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships.rb create mode 100644 lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships_rows.rb rename lib/datadog_api_client/v2/models/{batch_delete_rows_request_data.rb => table_row_resource_identifier.rb} (95%) diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index bd5307a92d54..a27042d9b8fc 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -7475,23 +7475,89 @@ components: properties: data: items: - $ref: '#/components/schemas/BatchDeleteRowsRequestData' + $ref: '#/components/schemas/TableRowResourceIdentifier' maxItems: 200 type: array required: - data type: object - BatchDeleteRowsRequestData: - description: Row resource containing a single row identifier for deletion. + BatchRowsQueryDataType: + default: reference-tables-batch-rows-query + description: Resource type identifier for batch queries of reference table rows. + enum: + - reference-tables-batch-rows-query + example: reference-tables-batch-rows-query + type: string + x-enum-varnames: + - REFERENCE_TABLES_BATCH_ROWS_QUERY + BatchRowsQueryRequest: + properties: + data: + $ref: '#/components/schemas/BatchRowsQueryRequestData' + type: object + BatchRowsQueryRequestData: + properties: + attributes: + $ref: '#/components/schemas/BatchRowsQueryRequestDataAttributes' + type: + $ref: '#/components/schemas/BatchRowsQueryDataType' + required: + - type + type: object + BatchRowsQueryRequestDataAttributes: + properties: + row_ids: + example: + - row_id_1 + - row_id_2 + items: + type: string + type: array + table_id: + example: 00000000-0000-0000-0000-000000000000 + type: string + required: + - row_ids + - table_id + type: object + BatchRowsQueryResponse: + example: + data: + id: 00000000-0000-0000-0000-000000000000 + relationships: + rows: + data: + - id: row_id_1 + type: row + - id: row_id_2 + type: row + type: reference-tables-batch-rows-query + properties: + data: + $ref: '#/components/schemas/BatchRowsQueryResponseData' + type: object + BatchRowsQueryResponseData: properties: id: - example: primary_key_value type: string + relationships: + $ref: '#/components/schemas/BatchRowsQueryResponseDataRelationships' type: - $ref: '#/components/schemas/TableRowResourceDataType' + $ref: '#/components/schemas/BatchRowsQueryDataType' required: - type - - id + type: object + BatchRowsQueryResponseDataRelationships: + properties: + rows: + $ref: '#/components/schemas/BatchRowsQueryResponseDataRelationshipsRows' + type: object + BatchRowsQueryResponseDataRelationshipsRows: + properties: + data: + items: + $ref: '#/components/schemas/TableRowResourceIdentifier' + type: array type: object BatchUpsertRowsRequestArray: description: The request body for creating or updating multiple rows into a @@ -66953,6 +67019,18 @@ components: type: string x-enum-varnames: - ROW + TableRowResourceIdentifier: + description: Row resource containing a single row identifier. + properties: + id: + example: primary_key_value + type: string + type: + $ref: '#/components/schemas/TableRowResourceDataType' + required: + - type + - id + type: object TagsEventAttribute: description: Array of tags associated with your event. example: @@ -96388,6 +96466,57 @@ paths: operator: OR permissions: - timeseries_query + /api/v2/reference-tables/queries/batch-rows: + post: + description: Batch query reference table rows by their primary key values. Returns + only found rows in the included array. + operationId: BatchRowsQuery + requestBody: + content: + application/json: + examples: + happy_path: + summary: Batch query reference table rows by their primary key values. + value: + data: + attributes: + row_ids: + - row_id_1 + - row_id_2 + table_id: 00000000-0000-0000-0000-000000000000 + type: reference-tables-batch-rows-query + schema: + $ref: '#/components/schemas/BatchRowsQueryRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/BatchRowsQueryResponse' + description: Successfully retrieved rows. Some or all requested rows were + found. Response includes found rows in the included section. + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Batch rows query + tags: + - Reference Tables /api/v2/reference-tables/tables: get: description: List all reference tables in this organization. diff --git a/examples/v2/reference-tables/BatchRowsQuery.rb b/examples/v2/reference-tables/BatchRowsQuery.rb new file mode 100644 index 000000000000..e1db529ef671 --- /dev/null +++ b/examples/v2/reference-tables/BatchRowsQuery.rb @@ -0,0 +1,19 @@ +# Batch rows query returns "Successfully retrieved rows. Some or all requested rows were found. Response includes found +# rows in the included section." response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::ReferenceTablesAPI.new + +body = DatadogAPIClient::V2::BatchRowsQueryRequest.new({ + data: DatadogAPIClient::V2::BatchRowsQueryRequestData.new({ + attributes: DatadogAPIClient::V2::BatchRowsQueryRequestDataAttributes.new({ + row_ids: [ + "row_id_1", + "row_id_2", + ], + table_id: "00000000-0000-0000-0000-000000000000", + }), + type: DatadogAPIClient::V2::BatchRowsQueryDataType::REFERENCE_TABLES_BATCH_ROWS_QUERY, + }), +}) +p api_instance.batch_rows_query(body) diff --git a/examples/v2/reference-tables/DeleteRows.rb b/examples/v2/reference-tables/DeleteRows.rb index 15d9ef0bca3d..6b9d8224b4f2 100644 --- a/examples/v2/reference-tables/DeleteRows.rb +++ b/examples/v2/reference-tables/DeleteRows.rb @@ -5,7 +5,7 @@ body = DatadogAPIClient::V2::BatchDeleteRowsRequestArray.new({ data: [ - DatadogAPIClient::V2::BatchDeleteRowsRequestData.new({ + DatadogAPIClient::V2::TableRowResourceIdentifier.new({ id: "primary_key_value", type: DatadogAPIClient::V2::TableRowResourceDataType::ROW, }), diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 32f3745ebfcb..95f3727d7bec 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -3247,6 +3247,9 @@ "v2.ListConnections" => { "entity" => "String", }, + "v2.BatchRowsQuery" => { + "body" => "BatchRowsQueryRequest", + }, "v2.ListTables" => { "page_limit" => "Integer", "page_offset" => "Integer", diff --git a/features/v2/reference_tables.feature b/features/v2/reference_tables.feature index db0f84a6e55b..0ba8738c6b9f 100644 --- a/features/v2/reference_tables.feature +++ b/features/v2/reference_tables.feature @@ -7,6 +7,27 @@ Feature: Reference Tables And a valid "appKeyAuth" key in the system And an instance of "ReferenceTables" API + @generated @skip @team:DataDog/redapl-experiences + Scenario: Batch rows query returns "Bad Request" response + Given new "BatchRowsQuery" request + And body with value {"data": {"attributes": {"row_ids": ["row_id_1", "row_id_2"], "table_id": "00000000-0000-0000-0000-000000000000"}, "type": "reference-tables-batch-rows-query"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/redapl-experiences + Scenario: Batch rows query returns "Not Found" response + Given new "BatchRowsQuery" request + And body with value {"data": {"attributes": {"row_ids": ["row_id_1", "row_id_2"], "table_id": "00000000-0000-0000-0000-000000000000"}, "type": "reference-tables-batch-rows-query"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/redapl-experiences + Scenario: Batch rows query returns "Successfully retrieved rows. Some or all requested rows were found. Response includes found rows in the included section." response + Given new "BatchRowsQuery" request + And body with value {"data": {"attributes": {"row_ids": ["row_id_1", "row_id_2"], "table_id": "00000000-0000-0000-0000-000000000000"}, "type": "reference-tables-batch-rows-query"}} + When the request is sent + Then the response status is 200 Successfully retrieved rows. Some or all requested rows were found. Response includes found rows in the included section. + @generated @skip @team:DataDog/redapl-experiences Scenario: Create reference table returns "Bad Request" response Given new "CreateReferenceTable" request diff --git a/features/v2/undo.json b/features/v2/undo.json index e33094f9f8cd..a04c9b283b90 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -3963,6 +3963,12 @@ "type": "idempotent" } }, + "BatchRowsQuery": { + "tag": "Reference Tables", + "undo": { + "type": "safe" + } + }, "ListTables": { "tag": "Reference Tables", "undo": { diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index d50fa5f2e08f..ecfa13f94836 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -1394,7 +1394,14 @@ def overrides "v2.azure_uc_config_post_request_type" => "AzureUCConfigPostRequestType", "v2.azure_uc_configs_response" => "AzureUCConfigsResponse", "v2.batch_delete_rows_request_array" => "BatchDeleteRowsRequestArray", - "v2.batch_delete_rows_request_data" => "BatchDeleteRowsRequestData", + "v2.batch_rows_query_data_type" => "BatchRowsQueryDataType", + "v2.batch_rows_query_request" => "BatchRowsQueryRequest", + "v2.batch_rows_query_request_data" => "BatchRowsQueryRequestData", + "v2.batch_rows_query_request_data_attributes" => "BatchRowsQueryRequestDataAttributes", + "v2.batch_rows_query_response" => "BatchRowsQueryResponse", + "v2.batch_rows_query_response_data" => "BatchRowsQueryResponseData", + "v2.batch_rows_query_response_data_relationships" => "BatchRowsQueryResponseDataRelationships", + "v2.batch_rows_query_response_data_relationships_rows" => "BatchRowsQueryResponseDataRelationshipsRows", "v2.batch_upsert_rows_request_array" => "BatchUpsertRowsRequestArray", "v2.batch_upsert_rows_request_data" => "BatchUpsertRowsRequestData", "v2.batch_upsert_rows_request_data_attributes" => "BatchUpsertRowsRequestDataAttributes", @@ -5169,6 +5176,7 @@ def overrides "v2.table_row_resource_data" => "TableRowResourceData", "v2.table_row_resource_data_attributes" => "TableRowResourceDataAttributes", "v2.table_row_resource_data_type" => "TableRowResourceDataType", + "v2.table_row_resource_identifier" => "TableRowResourceIdentifier", "v2.team" => "Team", "v2.team_attributes" => "TeamAttributes", "v2.team_connection" => "TeamConnection", diff --git a/lib/datadog_api_client/v2/api/reference_tables_api.rb b/lib/datadog_api_client/v2/api/reference_tables_api.rb index 3d9c49d3da90..97df6f86556e 100644 --- a/lib/datadog_api_client/v2/api/reference_tables_api.rb +++ b/lib/datadog_api_client/v2/api/reference_tables_api.rb @@ -23,6 +23,73 @@ def initialize(api_client = DatadogAPIClient::APIClient.default) @api_client = api_client end + # Batch rows query. + # + # @see #batch_rows_query_with_http_info + def batch_rows_query(body, opts = {}) + data, _status_code, _headers = batch_rows_query_with_http_info(body, opts) + data + end + + # Batch rows query. + # + # Batch query reference table rows by their primary key values. Returns only found rows in the included array. + # + # @param body [BatchRowsQueryRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(BatchRowsQueryResponse, Integer, Hash)>] BatchRowsQueryResponse data, response status code and response headers + def batch_rows_query_with_http_info(body, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: ReferenceTablesAPI.batch_rows_query ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling ReferenceTablesAPI.batch_rows_query" + end + # resource path + local_var_path = '/api/v2/reference-tables/queries/batch-rows' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'BatchRowsQueryResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth, :AuthZ] + + new_options = opts.merge( + :operation => :batch_rows_query, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: ReferenceTablesAPI#batch_rows_query\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # Create reference table. # # @see #create_reference_table_with_http_info diff --git a/lib/datadog_api_client/v2/models/batch_delete_rows_request_array.rb b/lib/datadog_api_client/v2/models/batch_delete_rows_request_array.rb index e2603d2db05c..6294e9bdaca4 100644 --- a/lib/datadog_api_client/v2/models/batch_delete_rows_request_array.rb +++ b/lib/datadog_api_client/v2/models/batch_delete_rows_request_array.rb @@ -38,7 +38,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'data' => :'Array' + :'data' => :'Array' } end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_data_type.rb b/lib/datadog_api_client/v2/models/batch_rows_query_data_type.rb new file mode 100644 index 000000000000..177ced813fd6 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_data_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Resource type identifier for batch queries of reference table rows. + class BatchRowsQueryDataType + include BaseEnumModel + + REFERENCE_TABLES_BATCH_ROWS_QUERY = "reference-tables-batch-rows-query".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_request.rb b/lib/datadog_api_client/v2/models/batch_rows_query_request.rb new file mode 100644 index 000000000000..bbb433bdbfa6 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_request.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryRequest + include BaseGenericModel + + # + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'BatchRowsQueryRequestData' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryRequest` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + self.data = attributes[:'data'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_request_data.rb b/lib/datadog_api_client/v2/models/batch_rows_query_request_data.rb new file mode 100644 index 000000000000..6211dab61428 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_request_data.rb @@ -0,0 +1,133 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryRequestData + include BaseGenericModel + + # + attr_accessor :attributes + + # Resource type identifier for batch queries of reference table rows. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'BatchRowsQueryRequestDataAttributes', + :'type' => :'BatchRowsQueryDataType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryRequestData` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'attributes') + self.attributes = attributes[:'attributes'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + attributes == o.attributes && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_request_data_attributes.rb b/lib/datadog_api_client/v2/models/batch_rows_query_request_data_attributes.rb new file mode 100644 index 000000000000..72ad6658943a --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_request_data_attributes.rb @@ -0,0 +1,146 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryRequestDataAttributes + include BaseGenericModel + + # + attr_reader :row_ids + + # + attr_reader :table_id + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'row_ids' => :'row_ids', + :'table_id' => :'table_id' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'row_ids' => :'Array', + :'table_id' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryRequestDataAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'row_ids') + if (value = attributes[:'row_ids']).is_a?(Array) + self.row_ids = value + end + end + + if attributes.key?(:'table_id') + self.table_id = attributes[:'table_id'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @row_ids.nil? + return false if @table_id.nil? + true + end + + # Custom attribute writer method with validation + # @param row_ids [Object] Object to be assigned + # @!visibility private + def row_ids=(row_ids) + if row_ids.nil? + fail ArgumentError, 'invalid value for "row_ids", row_ids cannot be nil.' + end + @row_ids = row_ids + end + + # Custom attribute writer method with validation + # @param table_id [Object] Object to be assigned + # @!visibility private + def table_id=(table_id) + if table_id.nil? + fail ArgumentError, 'invalid value for "table_id", table_id cannot be nil.' + end + @table_id = table_id + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + row_ids == o.row_ids && + table_id == o.table_id && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [row_ids, table_id, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_response.rb b/lib/datadog_api_client/v2/models/batch_rows_query_response.rb new file mode 100644 index 000000000000..2865198fa516 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_response.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryResponse + include BaseGenericModel + + # + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'BatchRowsQueryResponseData' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryResponse` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + self.data = attributes[:'data'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_response_data.rb b/lib/datadog_api_client/v2/models/batch_rows_query_response_data.rb new file mode 100644 index 000000000000..b54fdffc3e2b --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_response_data.rb @@ -0,0 +1,143 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryResponseData + include BaseGenericModel + + # + attr_accessor :id + + # + attr_accessor :relationships + + # Resource type identifier for batch queries of reference table rows. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'id' => :'id', + :'relationships' => :'relationships', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'id' => :'String', + :'relationships' => :'BatchRowsQueryResponseDataRelationships', + :'type' => :'BatchRowsQueryDataType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryResponseData` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'relationships') + self.relationships = attributes[:'relationships'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + id == o.id && + relationships == o.relationships && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [id, relationships, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships.rb b/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships.rb new file mode 100644 index 000000000000..e348069d0e35 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryResponseDataRelationships + include BaseGenericModel + + # + attr_accessor :rows + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'rows' => :'rows' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'rows' => :'BatchRowsQueryResponseDataRelationshipsRows' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryResponseDataRelationships` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'rows') + self.rows = attributes[:'rows'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + rows == o.rows && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [rows, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships_rows.rb b/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships_rows.rb new file mode 100644 index 000000000000..717574c7b6f6 --- /dev/null +++ b/lib/datadog_api_client/v2/models/batch_rows_query_response_data_relationships_rows.rb @@ -0,0 +1,107 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # + class BatchRowsQueryResponseDataRelationshipsRows + include BaseGenericModel + + # + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchRowsQueryResponseDataRelationshipsRows` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + if (value = attributes[:'data']).is_a?(Array) + self.data = value + end + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/batch_delete_rows_request_data.rb b/lib/datadog_api_client/v2/models/table_row_resource_identifier.rb similarity index 95% rename from lib/datadog_api_client/v2/models/batch_delete_rows_request_data.rb rename to lib/datadog_api_client/v2/models/table_row_resource_identifier.rb index 887085c067c1..1c25d79a8ba9 100644 --- a/lib/datadog_api_client/v2/models/batch_delete_rows_request_data.rb +++ b/lib/datadog_api_client/v2/models/table_row_resource_identifier.rb @@ -17,8 +17,8 @@ require 'time' module DatadogAPIClient::V2 - # Row resource containing a single row identifier for deletion. - class BatchDeleteRowsRequestData + # Row resource containing a single row identifier. + class TableRowResourceIdentifier include BaseGenericModel # @@ -52,7 +52,7 @@ def self.openapi_types # @!visibility private def initialize(attributes = {}) if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::BatchDeleteRowsRequestData` initialize method" + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::TableRowResourceIdentifier` initialize method" end self.additional_properties = {}